我有以下查詢:MySQL的IF ELSE語句的語法錯誤
SELECT
*
FROM
`hssData`
WHERE
`group` = 'LGA_737_CA'
AND (
`pos` = 'CA' OR `pos` = 'RC'
)
AND (
`depTimeInt` >= 0 AND `depTimeInt` <= 1440
)
AND (
`arrTimeInt` >= 1050 OR `arrTimeInt` <= 45
)
AND `days` >= 1
AND `days` <= 2
ORDER BY
`depTime` ASC
LIMIT
0, 100
......除了當arrTimeInt <= 45
我想:
`days` >= 1 AND `days` <= 1
而且不
`days` >= 1 AND `days` <= 2
我有嘗試過:
SELECT
*
FROM
`hssData`
WHERE
`group` = 'LGA_737_CA'
AND (
`pos` = 'CA' OR `pos` = 'RC'
)
AND (
`depTimeInt` >= 0 AND `depTimeInt` <= 1440
)
AND (
`arrTimeInt` >= 1050 OR `arrTimeInt` <= 45
)
AND (
IF (`arrTimeInt` < 45) THEN (
`days` <= 1 AND `days` <= 3
) ELSE (
`days` <= 1 AND `days` <= 2
)
)
ORDER BY
`depTime` ASC
LIMIT
0, 100
但這會引發語法錯誤。
我無法獲得正確的語法。我究竟做錯了什麼?語法錯誤是:
#1064 - 您的SQL語法錯誤;檢查對應於您的MySQL服務器版本的正確的語法使用 附近的手冊 ')THEN(
。days
< = 1 ANDdays
< = 2 )ELSE(days
< = 1 A' 在第20行
添加錯誤消息請 – Jens
「這將引發一個語法錯誤」 _What_錯誤? –
'days> = 1 AND days <= 1'這個布爾邏輯的唯一解決方案是'days = 1' – Martin