我正在尝试编写一个使用多个关键字进行搜索的选择语句。例如
SELECT id FROM my_mod mm WHERE (mm.name LIKE '%joe%' OR mm.name LIKE '%jim%');
我想要做的是在返回数据中有一个额外的列,用于计算该行与类似语句之一匹配的次数。
因此,对于上面的情况,如果有名称 jimjoe
,则计数为 2,或者如果名称为 jim
,则计数为 1。有人知道有什么方法可以做到这一点吗?
我还应该提到我不能使用临时表。
最佳答案
SELECT id,
CASE
WHEN mm.name LIKE '%joe%'
AND mm.name LIKE '%jim%' THEN 2
ELSE 1
end AS cnt
FROM my_mod mm
WHERE mm.name LIKE '%joe%'
OR mm.name LIKE '%jim%'
关于mysql - select 语句中的动态变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10718391/