我有一个SQL问题。除了我用粗体突出显示的部分之外,以下SELECT语句中的所有内容均正常工作。我要做的是允许用户在数据库中搜索特定的规则。不幸的是,我实际上没有Rule列,所以我需要连接某些字段值来创建一个字符串,用它来与用户的searchtext进行比较。
任何想法为什么粗体部分不起作用?理论上,我希望这个语句检查字符串“Rule”+ part_num(其中part_num是part_num字段中包含的值)是否等于searchtext的值(searchtext的值是从我的PHP脚本获得的)。 / p>
我做了一些关于为SQL目的连接字符串的研究,但似乎没有一个适合该法案。那里有人有什么建议吗?
SELECT id,
part_num,
part_title,
rule_num,
rule_title,
sub_heading_num,
sub_heading,
contents
FROM rules
WHERE part_title LIKE "%'.$searchtext.'%"
OR rule_title LIKE "%'.$searchtext.'%"
OR sub_heading LIKE "%'.$searchtext.'%"
OR contents LIKE "%'.$searchtext.'%"
OR "rule" + part_num LIKE "%'.$searchtext.'%" --RULE PLUS PART_NUM DOESN'T WORK
ORDER BY id;
答案 0 :(得分:3)
由于您没有指定使用哪个DB,我将假设SQL Sever。
在SQL Server中使用单引号'I'm a string'
指定字符串,而不是双引号。
有关示例,请参阅MSDN上的+ (String Concatenation)。
答案 1 :(得分:0)
另一种可能性是part_num是一个数字。如果是这样,请在连接之前将数字转换为字符串(varchar)。