【问题标题】:How to use nested SELECTs in Mysql with LIKE?如何在 Mysql 中通过 LIKE 使用嵌套的 SELECT?
【发布时间】:2011-11-01 18:47:12
【问题描述】:

假设这是我需要的查询:

SELECT * FROM `products` WHERE `keywords` LIKE "%(SELECT `key` FROM `keywords` WHERE `slug` = '%d8%af%db%8c%d9%88%d8%a7%d8%b1' LIMIT 1)%"

目前它不起作用并在有满足条件的记录时返回零结果。
我想知道这里有什么问题?

【问题讨论】:

    标签: mysql select sql-like


    【解决方案1】:

    这应该可行:

    SELECT * 
    FROM products 
    WHERE keywords LIKE
        CONCAT('%', (SELECT `key` FROM `keywords` 
            WHERE `slug` = '%d8%af%db%8c%d9%88%d8%a7%d8%b1' LIMIT 1), '%');
    

    【讨论】:

      【解决方案2】:

      试试这个,不知道行不行...

      SELECT * FROM products
      WHERE keywords LIKE "%" + (SELECT key FROM keywords WHERE slug = 'something' LIMIT 1) + "%";
      

      【讨论】:

      • 愚蠢的是,'+' 不会在 MySQL 中连接字符串 - 仅在几乎所有其他 SQL 数据库中。
      【解决方案3】:

      另一个带有类似和嵌套 SELECT 的工作示例:

      SELECT COUNT(email) as count FROM table1 t1 
      JOIN (
            SELECT company_domains as emailext FROM table2 WHERE company = 'DELL'
           ) t2 
      ON t1.email LIKE CONCAT('%', emailext) WHERE t1.event='PC Global Conference";
      

      如果电子邮件扩展名等于多个公司域,则任务是使用过滤器计算事件的参与者。如果有人觉得这很有用,那就太好了

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-08-29
        • 2020-06-09
        • 2016-12-01
        • 1970-01-01
        • 2011-05-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多