在我的 mysql 表中,其中一个字段存储了类似 (1|2|3) 的值。
id Skills
---- --------
1 1|2|3|5
2 2|4|5
3 4|6|3
4 5|2|3|1
我想根据匹配的技能搜索并列出 ID。如果我想列出包含3
的技能的ID,我必须列出ID1,3,4
。就像如果我想列出包含1,5(1或5或两者)
(如多个值1,4,3)的技能的ID,那么我想列出1 ,2,4(我也想列出 2
)。任何帮助都将不胜感激。
提前致谢。
最佳答案
select id
from your_table
where find_in_set('3', replace(skills, '|',',') > 0
select id
from your_table
where find_in_set('3', replace(skills, '|',',')) > 0
or find_in_set('5', replace(skills, '|',',')) > 0
但你实际上应该改变你的数据库结构。始终将单个值存储在列中以避免此类问题!
关于php - 匹配 mysql select 查询中的 delimeter(|) 分隔值字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16397101/