SQL使用辅助查询分隔分隔符

时间:2016-02-02 20:43:57

标签: php mysql

我有一个包含列的表

  • 名称
  • 触发器

触发器列存储逗号分隔的字符串,例如(2,4,58,72),我已经能够编写以下查询来将我的值分成单独的行,但现在我被卡住了。

我现有的查询是:

/etc/nginx/naxsi.rules;

问题是我的第二个查询依赖于为"值"分隔的各个变量。在此查询中,但此名称没有列可以真正查询。

如何设置辅助查询或修改上述查询以分隔分隔变量,然后按特定值"触发"

过滤

最终目标是我想搜索所有带触发器##的条目,但触发器需要分开才能发生。

有什么想法吗?

我正在尝试构建一个自定义函数,因此该系列可重复如下:

SELECT name, link, content, bg_img, SUBSTRING_INDEX(SUBSTRING_INDEX(t.triggers, ',', n.n), ',', -1) value
FROM ad_banners t CROSS JOIN 
(
    SELECT a.N + b.N * 10 + 1 n
    FROM 
    (
        SELECT 0 AS N
        UNION ALL SELECT 1
        UNION ALL SELECT 2
        UNION ALL SELECT 3
        UNION ALL SELECT 4 
        UNION ALL SELECT 5 
        UNION ALL SELECT 6 
        UNION ALL SELECT 7 
        UNION ALL SELECT 8 
        UNION ALL SELECT 9) a,
        (
            SELECT 0 AS N
            UNION ALL SELECT 1
            UNION ALL SELECT 2 
            UNION ALL SELECT 3 
            UNION ALL SELECT 4 
            UNION ALL SELECT 5 
            UNION ALL SELECT 6 
            UNION ALL SELECT 7 
            UNION ALL SELECT 8 
            UNION ALL SELECT 9) b
            ORDER BY n
        ) n
        WHERE n.n <= 1 + (LENGTH(t.triggers) - LENGTH(REPLACE(t.triggers, ',', ''))) 
        AND live = 'yes' 
        AND end_date >= CURDATE()
        ORDER BY value

1 个答案:

答案 0 :(得分:0)

@ Chris85是正确的,规范我的表解决了我的问题。