我正在尝试运行以下MySQL命令:
SELECT ID, intervention_post_title, linked_article FROM wp_cpt_combined WHERE FIND_IN_SET (72, habitat_type)
在我的数据库中,habitat_type列(因为这是一个多选字段)将值存储为“
id habitat_type
1 [72, 74]
2 [70]
3 [71]
上面的sql命令不返回任何行-我缺少什么?我需要能够使用find_in_set(72,栖息地类型)或find_in_set(74,栖息地类型)等向后拉第1行。是否必须进行替换才能去除方括号?
任何帮助将不胜感激。
D。
答案 0 :(得分:0)
REPLACE()
函数用空字符串替换[
和]
的出现。尝试以下操作:
SELECT
ID,
intervention_post_title,
linked_article
FROM wp_cpt_combined
WHERE FIND_IN_SET ('72', REPLACE(REPLACE(habitat_type, '[', ''), ']', ''))
答案 1 :(得分:0)
您可以通过移除方括号来做到这一点 在诸如Find_in_set(72,'72,73,74')之类的集合作品中查找,它将返回72的位置,即1 而find_in_set(72,'73,72,74')即2 因此您也可以尝试使用条件运算符find_in_set(72,'72,73')> 0