【问题标题】:How many values of an array in a MySQL stringMySQL字符串中有多少个数组的值
【发布时间】:2016-01-13 17:07:43
【问题描述】:

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

$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、名称和值的数组。

【问题讨论】:

    标签: php mysql arrays


    【解决方案1】:

    您可以使用 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;
    

    这将准确返回您对测试数据集的预期。

    问候,

    【讨论】:

    • 谢谢您,抱歉耽搁了!
    • 抱歉...问题的一部分是“最好的办法是拥有一个包含 ID、名称和多少个值的数组”...如何获得它?
    • 您只需在选择后添加:“ID, name,”。
    猜你喜欢
    • 2021-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-01
    • 1970-01-01
    • 2022-11-14
    • 2020-05-18
    • 2023-03-30
    相关资源
    最近更新 更多