我的聊天记录表有正常的文字和message_text字段中的图像名称,现在我想在message_text中搜索包含图像的记录。我尝试使用此查询SELECT * FROM em_chat_history WHERE message_text IN (jpg,jpeg,png)
,但获得了0条记录。
em_chat_history table:
id user_id username message_text room_id created_at
46 188 XXXXX XXXXX SW7gpNiHYd 2017-05-23 12:15:09
48 187 XXXXX image1495530526.jpeg SW7gpNiHYd 2017-05-23 12:10:42
49 188 XXXXX XXXXX SW7gpNiHYd 2017-05-23 12:10:49
50 188 XXXXX image1495530527.jpeg SW7gpNiHYd 2017-05-23 12:10:49
53 191 XXXXX XXXXX AQ7gpNiHYd 2017-05-23 12:15:09
54 187 XXXXX XXXXX AQ7gpNiHYd 2017-05-23 12:16:18
任何想法为什么我得到0条记录。
由于
答案 0 :(得分:0)
您应该使用LIKE
子句。
试试这个
SELECT * FROM em_chat_history
WHERE message_text LIKE '%jpg'
OR message_text LIKE '%jpeg'
OR message_text LIKE '%png'
此外,如果您需要搜索字符串中间的这些术语,您可以使用此查询
SELECT * FROM em_chat_history
WHERE message_text LIKE '%jpg%'
OR message_text LIKE '%jpeg%'
OR message_text LIKE '%png%'
基本上百分号告诉您允许通配符在哪一侧。
在右侧放置百分号表示您查找以jpg
开头的字符串,将其放在左侧,表示您正在查找以jpg
结尾的字符串,并将其放在两侧你只需要包含jpg
答案 1 :(得分:0)
试试这个:
SELECT * FROM em_chat_history WHERE message_text LIKE '%jpg' OR message_text LIKE '%jpeg' OR message_text LIKE '%png';
您应该同时使用LIKE和OR运算符。 IN运算符会检查完全匹配。