簡體   English   中英

使用php在mysql中搜索逗號分隔的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM