子查询中的like子句不起作用

时间:2016-06-23 09:40:27

标签: php mysql

我有2个表设计和商店,我需要设计商店ID是'某事'的设计,特别是设计应允许的商店ID。

示例 - 商店ID是'401274'然后我想要设计应该属于商店ID ='401274'并且在商店ID(401274)上,设计ID应该在商店的design_id_allowed列中可用,我已经写了一个子查询但它在这里不起作用是语法错误

我的查询是,

   SELECT `designs`.`id`, (SELECT  `stores`.`id` as 'store_id'  FROM `stores` WHERE  `stores`.`id`='401274' And `stores`.`design_id_allowed` like '%#'.`designs`.`id`.'#%') FROM `designs` WHERE `designs`.`store_id` = '401274'

错误是,

  

1064 - 您的SQL语法出错;检查与MySQL服务器版本对应的手册,以获得正确的语法

     

在'SELECT stores附近。id为'store_id'FRN stores WHERE   第1行storesid ='401274'

在商店表中,设计是这样的id条目, enter image description here

4 个答案:

答案 0 :(得分:2)

尝试将您的查询更改为

SELECT
  `designs`.`id`,
  (SELECT  `stores`.`id` as 'store_id'  FROM `stores` WHERE  `stores`.`id`='401274' And `stores`.`design_id_allowed` like '%2629%')
FROM `designs`
WHERE `designs`.`store_id` = '401274'

PHP

$db = new PDO($dsn, $user, $password);

$sql = "
    SELECT
      `designs`.`id`,
      (SELECT  `stores`.`id` as 'store_id'  FROM `stores` WHERE  `stores`.`id`='".$db->quote($var1)."' And `stores`.`design_id_allowed` like '%".$db->quote($var2)."%')
    FROM `designs`
    WHERE `designs`.`store_id` = '401274'
";

 $data = $db->query($sql)->fetchAll();

答案 1 :(得分:1)

列名由<body> <div id="myContainer"></div> <script src="Main.js"></script> <script> var app = Elm.Main.init( { node: document.getElementById("myContainer"), flags: window.options } ); </script> </body>

分隔
,

答案 2 :(得分:1)

在查询中使用正则表达式,如

WHERE `designs`.`store_id` REGEXP '^#[0-9]+,#[0-9]+$'

答案 3 :(得分:1)

试试这个好友 -

SELECT
  `designs`.`id`,
  (SELECT  `stores`.`id` as 'store_id'  FROM `stores` WHERE  `stores`.`id`='401274' And `stores`.`design_id_allowed` like '%2629%')
FROM `designs`
WHERE `designs`.`store_id` = '401274'