2
我有這個疑問MySQL的條件選擇基於查詢的WHERE子句
SELECT column1 FROM Table1 WHERE column1 LIKE CONCAT('%', :regex, '%') OR (column2 IS NOT NULL AND column2 LIKE CONCAT('%', :regex, '%')
返回總是column1
值如果Table1
滿足創紀錄的where子句。但我想要的是,如果滿足where子句的第一部分LIKE CONCAT('%', :regex, '%')
,則返回column1
值,如果滿足第二部分(column2 IS NOT NULL AND column2 LIKE CONCAT('%', :regex, '%')
,則返回column2
值。 我應該如何修改查詢來實現這個結果?
大,查詢的工作原理是我想要的。但是我還有一個問題與你的答案有關:在你的查詢中,相同的比較會執行兩次,一次是選擇,另一次是在哪裏。只有兩種之一可以優化查詢嗎? – LuckyStarr 2013-03-20 09:20:24