[英]search comma separated values in mysql using php
我在數據庫上運行選擇查詢時遇到了一些問題。 其中一些數據作為逗號分隔值的列表保存,例如:
表格: example_tbl
| Id | standardid | subjectid |
| 1 | 1,2,3 | 8,10,3 |
| 2 | 7,6,12 | 18,19,2 |
| 3 | 10,11,12 | 4,3,7 |
下面是我嘗試運行的一種示例:
select * from table where standardid in (7,10) and subjectid in (2,3,4)
select * from table where FIND_IN_SET(7,10,standardid) and FIND_IN_SET(2,3,4,subjectid)
預先感謝您可以告訴我的任何事情。
數據庫中用逗號分隔的值本質上是有問題的並且效率低下,規范化數據庫設計要好得多。 但是如果您檢查FIND_IN_SET()的語法, 它將在集合中查找單個值,而不與集合中的多個值匹配。
要將其用於多個值,您需要多次使用該函數:
select * from table
where (FIND_IN_SET(7,standardid)
OR FIND_IN_SET(10,standardid))
and (FIND_IN_SET(2,subjectid)
OR FIND_IN_SET(3,subjectid)
OR FIND_IN_SET(4,subjectid))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.