我在我的数据库中有这个表:
+----+-----------+
| ID | JOB |
+----+-----------+
| 1 | Developer |
| 2 | Designer |
+----+-----------+
Run Code Online (Sandbox Code Playgroud)
我想运行这个通常会得到ID的查询:2
select j.ID from jobs j where 'Designer' in ( j.JOBS )
Run Code Online (Sandbox Code Playgroud)
不幸的是,当我喜欢这张桌子时它不起作用
+----+------------------------------------------+
| ID | JOB |
+----+------------------------------------------+
| 1 | Developer |
| 2 | Designer,administrator,analyst,Developer |
+----+------------------------------------------+
Run Code Online (Sandbox Code Playgroud)
因为j.JOBS的值是字符串:'Designer,administrator,analyst,Developer'
不喜欢commat这样的多重价值观:'设计师','管理员','分析师','开发者'
所以,我怎么能解决这个问题,我希望我能很好地解释我的问题.谢谢
考虑一下您在单列中存储值列表时的麻烦.你应该有一个单独的表,每行一行,每id行一行job.没有列表连续.关联表中每行只有一个项目.
但问题的答案是find_in_set():
select j.ID
from jobs j
where find_in_set('Designer', j.JOBS ) > 0;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
59 次 |
| 最近记录: |