MySQL如何选择记录哪个值具有图像名称

时间:2017-05-24 06:38:02

标签: mysql select

我的聊天记录表有正常的文字和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条记录。

由于

2 个答案:

答案 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运算符会检查完全匹配。