php - MySQL字符串中数组的多少个值

标签 php mysql arrays

我有一个包含一些值的简单数组:

$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/

相关文章:

c++ - 我认为数组是不可复制的

mysql - ORDER BY 和 GROUP BY 这些结果在单个查询中

C数组初始化,两者都可以接受吗?

php - codeigniter 重定向功能中的位置和刷新有什么区别?

php - 提交表单时在php中结合strip_tags和mysql_real_escape_string

PHP/MySql 代码更简单更高效

javascript - Ajax 和 MySql 插入、检查和检索

php - PhalconPHP select_box - 如何使用连接数据作为选项标签?

php - 通过 php 隐藏具有 0 值结果的文本/链接

c - 如何拥有一个返回整数指针的函数数组