SQL - SELECT语句 - 将字符串连接到

时间:2012-07-05 18:55:46

标签: sql

我有一个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; 

2 个答案:

答案 0 :(得分:3)

由于您没有指定使用哪个DB,我将假设SQL Sever。

在SQL Server中使用单引号'I'm a string'指定字符串,而不是双引号。

有关示例,请参阅MSDN上的+ (String Concatenation)

答案 1 :(得分:0)

另一种可能性是part_num是一个数字。如果是这样,请在连接之前将数字转换为字符串(varchar)。