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 に答える