0

似乎我的 LIKE mySQL 命令生成的结果比我希望的要多。我不明白为什么,我想知道是否有人可以通过帮助我理解为什么我的查询没有按预期工作来帮助我实现我的目标。我从查询中去掉了左边的“%”,这有点帮助,但它仍然产生了很多我不需要的结果。

例如:

User input ($searchword): 'ad' => returns[4]: 
                     'Adele Necklaces, 
                      Adwarrior Swords, 
                      Affirmative T-shirt, 
                      Agtec Radio'

Trying to get THESE results for user input($searchword): 'ad' => returns[2]: 
                                                   'Adelete Neckalces, 
                                                    Adwarrior Swords'

SQL 命令:

("SELECT * FROM products WHERE prod_name LIKE '".$searchword."%'")
4

1 回答 1

0

我的朋友,我相信你错了。 LIKE完全按照您的预期工作。

mysql> create table searchterms (term varchar(64), key(term) );
Query OK, 0 rows affected (0.01 sec)

mysql> insert into searchterms (term) values 
('Adele Necklaces'), ('Adwarrior Swords'),
('Affirmative T-shirt'), ('Agtec Radio');
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> set @st='ad';
Query OK, 0 rows affected (0.00 sec)

mysql> set @st='ad';
Query OK, 0 rows affected (0.00 sec)

mysql> select * from searchterms where term like concat(@st, '%');
+------------------+
| term             |
+------------------+
| Adele Necklaces  |
| Adwarrior Swords |
+------------------+
2 rows in set (0.00 sec)
于 2012-12-06T01:41:24.857 回答