1

我有一个 SQL 问题。除了我以粗体突出显示的部分之外,在下面的 SELECT 语句中一切正常。我想要做的是允许用户在数据库中搜索特定的规则。不幸的是,我实际上没有 Rule 列,因此我需要连接某些字段值以创建一个字符串,用于与用户的搜索文本进行比较。

知道为什么粗体部分不起作用吗?理论上,我希望这条语句检查字符串“Rule”+part_num(其中part_num 是part_num 字段中包含的值)是否等于searchtext 的值(searchtext 的值是从我的PHP 脚本中获得的)。

我为 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; 
4

2 回答 2

3

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

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

有关示例,请参阅MSDN 上的+(字符串连接)

于 2012-07-05T19:00:04.660 回答
0

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

于 2012-07-05T19:03:06.977 回答