像在mySql子查询中不起作用

时间:2018-06-25 07:06:04

标签: mysql

我使用了一些子查询,如果我要给硬编码的id工作,则根本不起作用。

SELECT
  (
  SELECT
    COUNT(*)
  FROM
    inventory_set_variations isv
  WHERE
    isv.c_catid LIKE '%[{"id":"c1.catid"}]%' AND isv.company_id = 1
) AS 'count_total_no_of_variations',
`c1`.`catid` AS `catid`

FROM
   category c1
WHERE
  (
    `c1`.`catsid` <> 3 AND c1.company_id = '1'
  )

这不起作用,

下面的代码正在工作,因为我提供了硬编码数据

SELECT
  (
  SELECT
    COUNT(*)
  FROM
    inventory_set_variations isv
  WHERE
    isv.c_catid LIKE '%[{"id":"1000020"}]%' AND isv.company_id = 1
) AS 'count_total_no_of_variations',
`c1`.`catid` AS `catid`

FROM
   category c1
WHERE
  (
    `c1`.`catsid` <> 3 AND c1.company_id = '1'
  )

1 个答案:

答案 0 :(得分:1)

您可以使用CONCAT形成like条件

更改

LIKE '%[{"id":"c1.catid"}]%'

LIKE CONCAT('%[{"id":"',c1.catid,'"}]%')