我有一个包含一些值的简单数组:
$firstArray = array (
['val1'] => 'a',
['val2'] => 'b',
['val3'] => 'c'
);
并且我想找出这个数组的多少个值出现在像这样的 MySQL 表的每一行中:
| ID | Name | Val |
| 01 | voice1 | a,c,d,e | // it should return 2 (a and c)
| 02 | voice2 | a,b,c,d,f | // it should return 3 (a,b and c)
最好的办法应该是有一个数组,其中包含 ID、名称和值的数量。
最佳答案
您可以使用 FIND_IN_SET 返回匹配值的位置,并使用 SIGN 函数将其转换为 1 或 0。
select
SIGN(FIND_IN_SET('a', texte)) +
SIGN(FIND_IN_SET('b', texte)) +
SIGN(FIND_IN_SET('c', texte))
from your_table;
这会返回您对测试数据集的预期结果。
问候,
关于php - MySQL字符串中数组的多少个值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34772790/