【发布时间】:2015-10-27 12:17:41
【问题描述】:
我正在使用 nodeJs 和 mysql 包。
我想使用带有变量的 LIKE sql 语句。
这是源代码:
var likemobile = '%'+mobile;
var query = "SELECT vtiger_contactaddress.contactaddressid as 'leadid',
vtiger_contactaddress.mobile,
vtiger_contactaddress.phone
FROM `vtiger_contactaddress`
INNER JOIN `vtiger_crmentity`
ON vtiger_crmentity.crmid=vtiger_contactaddress.contactaddressid AND
vtiger_crmentity.deleted=0 AND
vtiger_contactaddress.mobile LIKE "+likemobile+" OR
vtiger_contactaddress.phone LIKE "+likemobile;
这是返回的错误:
Error: ER_PARSE_ERROR: You have an error in your SQL syntax; check the manual th
at corresponds to your MySQL server version for the right syntax to use near '%8
8436500 OR vtiger_leadaddress.phone LIKE %88436500' at line 1
【问题讨论】:
-
看来你必须像这样用单引号包裹类似的条件:“LIKE '” + likemobile,并用双引号关闭你的查询字符串。像这样:" <...> LIKE "+likemobile + ";
-
@Alyreza 你可以试试下面的编辑...因为查询应该有 '%8 8436500%' OR vtiger_leadaddress.phone LIKE '%88436500%' 这种类型的语法。
-
您已通过从 likemobile 中删除 % 来执行
-
@Alyreza 现在尝试..因为我放错了 % 和 '。
-
首先你必须明白你的查询应该是什么样子——在应用连接之后。然后,您应该了解连接的工作原理以及您应该做什么才能获得所需的查询。我假设您需要这样的查询:“select * from t where i like'%
'”。你有 likemobile 变量。现在让我们构建您的查询: query = "select * from t where i like ' " + likemobile + " ' ";用您的替换所有特定值。