我有以下SQL查詢:使用查詢
SELECT id_zam AS test,
CASE WHEN (SELECT something FROM sth WHERE id_something = test) = 1
THEN
'true'
ELSE
'false'
END as test_result
FROM testTable
something
等於1所以CASE語句是true,所以它要執行THEN
說法是'true'
但是,當我周圍的別名test
加單引號是這樣的:
SELECT id_zam AS 'test',
CASE WHEN (SELECT something FROM sth WHERE id_something = 'test') = 1
THEN
'true'
ELSE
'false'
END as test_result
FROM testTable
查詢返回'false'
。任何人都可以解釋他們爲什麼不同?
「測試」是一個字符串,測試一個記錄 - 列名。 – 2014-10-20 16:06:23
單引號應該只用於定義字符串和日期常量。沒有引號,'test'是指一列;用引號「test」是字符串「test」。 – 2014-10-20 16:06:23
看起來你正在將撇號與後退標記混淆(在鍵盤上的「1」的左側)。在mysql中使用後面的tick表示列名,撇號用於表示一個字符串。 – paqogomez 2014-10-20 16:09:53