我有一个SELECT语句,它根据找到的匹配项从数据库中返回行。但是,我想稍微更改一下这个SELECT语句。而不是获得所有比赛,并将它们加起来以获得所有比赛的最终计数,我希望它一旦获得一场比赛就停止添加比赛。我在代码下面有一个例子,它将更详细地解释:
$text1 = "IF ( input LIKE '% i am here %', 3, 0 )";
$text2 = "IF ( input LIKE '% i am %', 2, 0 )";
$text3 = "IF ( input LIKE '% i %', 1, 0 )";
SELECT colName, $text1+$text2+$text3 as 'matches'
FROM tableName
示例
有一行文字" i am here ";
使用当前的SELECT语句,它将获得3 + 2 + 1 = 6个匹配。但是不是6个匹配,我只想要第一个匹配的匹配,即3。因此,如果SELECT语句找到匹配,我希望它停止,并且只使用该匹配的匹配计数,而不是使用匹配其余比赛的计数。如果可能的话,我该怎么做?
答案 0 :(得分:1)
尝试使用CASE WHEN
运算符。
试试这个:
$text1 = "CASE WHEN input LIKE '%i am here %' THEN 3
ELSE
CASE WHEN input LIKE '% i am %' THEN 2
ELSE 1
END
END ";
SELECT colName, $text1 as 'matches'
FROM tableName