MySQL:使用LIKE生成比我需要的更多结果

时间:2012-12-06 01:32:51

标签: mysql

似乎我的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."%'")

1 个答案:

答案 0 :(得分: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)