2011-09-03 150 views
0

我想從表中選擇column_x的值小於column_y的行。這是我有:SELECT * FROM table WHERE col1 <= col2?

$query = "SELECT * 
      FROM table_name 
      WHERE timestamp <= '$timestamp' 
      AND hit_counter <= max_hits"; 

沒有人有任何想法,如果這將工作,如果不是我能做什麼來獲得這種功能:)。

+1

應該工作得很好。你嘗試過這個嗎?你也可以嘗試從MySQL運行查詢來查看它是否可以工作。 – Dex

+0

我還沒有嘗試過,我甚至沒有建立過這個表。我只是在事先尋求澄清,另外因爲我找不到關於這個主題的另一篇SO帖子,我認爲它可能會出現在其他人正在尋找做同樣的事情:)。 – Avicinnian

+0

語法看起來是正確的。你測試過了嗎? – 2011-09-03 03:13:04

回答

1

它完美地工作。這裏是SQL Server中的一個測試用例,但它在MySQL中是一樣的:

create table #test 
(
a int, 
b int 
) 

insert into #test 
values (1,2),(2,2),(5,4),(5,2) 

select a,b from #test 

a b 
1 2 
2 2 
5 4 
5 2 

select a,b from #test where a<=b 

    a b 
    1 2 
    2 2 
-1

看起來不錯,但我會嘗試刪除時間戳< ='$ timestamp'部分並重新執行。這是我能看到問題的唯一部分。 $ timestamp可能是錯誤的格式,並且/或者''會錯誤地將值顯示爲字符串。

+0

當在查詢中注入$ vars時,建議使用$ var的單引號。它從不會在MySQL中引用數字作爲一個字符串,它會**嚴重地咬到**而不是引用一個字符串。總是使用引號! – Johan

+1

我可能以過去的問題經驗爲基礎引用我的答案......雖然如果我試圖正確回憶它,但可能是沒有引號的問題。哎呀 – dispake

相關問題