【问题标题】:Where mistake in sql LIKE clause?sql LIKE 子句在哪里出错?
【发布时间】:2012-05-30 13:37:10
【问题描述】:

我尝试用这个选择来计算另一个表中的所有项目:

SELECT id, name,  (SELECT count(*) 
                   FROM prekes_main 
                   WHERE prekes_main.pristKaina = 1 
                   and   prekes_main.pg_kodas LIKE 'grupes_main.pg_kodas%') as pristKaina
FROM grupes_main 
WHERE grupes_main.level = 1 
and grupes_main.name <> ''

在 LIKE 子句中我想自动获取选定的 grupes_main 列 pg_kodas,但在这个查询中它总是返回 0,LIKE 函数的错误在哪里?谢谢

【问题讨论】:

  • 数据长什么样?
  • 不要将此子查询放在 select 语句中...每次有记录匹配您的 where 子句时,您都会要求计数!另外,两组数据之间没有连接。你应该修改你的逻辑

标签: mysql sql sql-like


【解决方案1】:
SELECT  id, name,
        (
        SELECT  COUNT(*)
        FROM    prekes_main
        WHERE   prekes_main.pristKaina = 1
                AND prekes_main.pg_kodas LIKE CONCAT(grupes_main.pg_kodas, '%')
        ) pristKaina
FROM    grupes_main
WHERE   grupes_main.level = 1
        AND grupes_main.name <> ''

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-28
    • 1970-01-01
    • 1970-01-01
    • 2013-05-21
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    相关资源
    最近更新 更多