+-----------+---------+
| InvoiceId | trueIDs |
+-----------+---------+
| ab12345 | 1,2,35 |
| cd1234567 | 92,28,1 |
| asdf12345 | 351,8,1 |
+-----------+---------+
UserAllowed (925,28,1,99,1059,314,422,96,917,356)
有没有办法比较两组id ?我想选择最好的性能方式,在两组变量之间进行比较,如果第一组的一个项目存在于表中,则返回InvoiceId…
php中有一个数组,db table cell中有一个逗号分隔的字符串。
如果数组值(UserAllowed)存在于数据库(trueIDs)中,则返回InvoiceId。
可能是php数组太大,对每个php数组项执行查询不符合逻辑。
SELECT
Invoices.InvoiceId
FROM
Invoices
WHERE
(925,28,1,99,1059,314,422,96,917,356) ???? Invoices.trueIDs
SELECT Invoices.InvoiceId
FROM Invoices
WHERE JSON_OVERLAPS(CONCAT('[', @UserAllowed, ']'), CONCAT('[', trueIDs, ']'));
https://dbfiddle.uk/?rdbms=mysql_8.0&小提琴= 62 fae329e23d3f2885c6b16ce1770765