[英]mysql query with WHERE IF and FIND_IN_SET() function
我一直在使用以下查詢:
"SELECT * FROM mytable WHERE IF(FIND_IN_SET(column1,'$searchString') > 0,1,0)
+ IF(FIND_IN_SET(column2, '$searchString') > 0, 1, 0)
+ IF(FIND_IN_SET(column3, '$searchString') > 0, 1, 0)+
IF(FIND_IN_SET(column4, '$searchString') > 0, 1, 0) > 0";
因此(如果成功)在4個成功匹配之后,查詢是否變為以下內容??:
"SELECT * FROM mytable WHERE 1+1+1+1 > 0";
請確保我的假設是否正確。 提前致謝。
通常,您可以使用or
進行這種類型的比較,除非您確實希望對匹配進行計數:
SELECT *
FROM mytable
WHERE (FIND_IN_SET(column1, '$searchString') > 0 OR
FIND_IN_SET(column2, '$searchString') > 0 OR
FIND_IN_SET(column3, '$searchString') > 0 OR
FIND_IN_SET(column4, '$searchString') > 0
);
是的,但是您可以將其縮短
SELECT * FROM mytable
WHERE
(
FIND_IN_SET(column1, '$searchString') > 0 +
FIND_IN_SET(column2, '$searchString') > 0 +
FIND_IN_SET(column3, '$searchString') > 0 +
FIND_IN_SET(column4, '$searchString') > 0
) > 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.