mysql - 在 mySQL 中使用 WHERE 子句并在两列中搜索字符串

标签 mysql search

我有一个查询,用于在两个字段(FIELD_IMPORTANT 和 FIELD_2)中搜索“字符串”。

我想要结果;

如果在FIELD_IMPORTANT中找到“字符串”,则将结果与FIELD_IMPORTANT中具有“字符串”的记录一起排序在顶部, 然后是其他人...

可能吗?

到目前为止,我有以下内容:

SELECT
expert.expert_name, naf_add.FIELD_IMPORTANT, naf_level_5.FIELD_2,
ROUND(AVG(expert_rating.rating_global)) AS avg_rating_global

FROM naf_nomenclature

LEFT JOIN naf_add ON naf_add.naf_add_naf_level_5_code = naf_nomenclature.level_5_code
INNER JOIN naf_level_5 ON naf_level_5.level_5_code = naf_nomenclature.level_5_code
INNER JOIN expert ON expert.expert_level_5_code = naf_nomenclature.level_5_code
LEFT JOIN expert_rating ON expert_rating.rating_expert_id = expert.expert_id


WHERE 
naf_add.FIELD_IMPORTANT  LIKE '%elec%' OR
naf_level_5.FIELD_2 LIKE '%elec%'

GROUP BY expert.expert_name

ORDER BY fword DESC, avg_rating_global DESC

最佳答案

您可以在order by中使用表达式:

order by (naf_add.FIELD_IMPORTANT LIKE '%elec%') desc,
         fword, avg_rating_global

MySQL 将 bool 表达式视为数字上下文中的整数,“0”表示 false,“1”表示 true。因此,当表达式为 true 时,第一个键的值为“1”。 desc 将这些放在第一位。

关于mysql - 在 mySQL 中使用 WHERE 子句并在两列中搜索字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34311863/

相关文章:

php - 如果 ID 存在于另一个表中,则拉行

mysql - R docker : Can't connect to local MySQL server through socket

eclipse - 是否可以扩展 Eclipse 搜索菜单

java - 在Java中搜索堆栈中最大元素的最快方法是什么?

php - 根据字母从数据库中搜索

ruby-on-rails - Rails 国家精选 gem

mysql - 一个字符出现在字符串的第一个位置和第二个位置的频率是多少?

php - 我在 115 的偏移 0 处出现反序列化错误

mysql - phpMyAdmin 中的正则表达式搜索

java - 本地共享数据