mysql - select 语句中的动态变量

标签 mysql select

我正在尝试编写一个使用多个关键字进行搜索的选择语句。例如

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/

相关文章:

MySQL - 更新和插入过程中最后一个选择的输出

mysql - 如何优化具有多个外连接到大表、group by 和 order by 子句的查询的执行计划?

asp.net - 在 DataTable.Select 中使用 BETWEEN

mysql - 从 MySQL date_format 中的 %m 和 %d 中删除前导零

mysql - 这个查询输出什么?

mysql - MS Access 多重连接查询

r - 仅选择数据框中与 R 中另一个数据框具有相同列名的列

mysql - SQL查询结果结构

php - 带有选择选项的mysql未知错误

android - HTTP超时异常