首页 > 解决方案 > 在带有like运算符的sql查询中使用星号标记

问题描述

我在使用 sql 查询时遇到问题。

这是我用来搜索结果的查询

SELECT * FROM wp_wp_campaigns 
WHERE `campaign_status`='1' 
AND `campaign_type`='o' 
AND `campaign_name_decoded` LIKE '%Deep%' 
    OR `campaign_name_decoded` LIKE '%Deep' 
    OR `campaign_name_decoded` LIKE 'Deep%' 
    OR `campaign_name_decoded` LIKE 'Deep_' 
    OR `campaign_name_decoded` LIKE '_Deep' 
    OR `campaign_name_decoded` LIKE '_Deep_' 
ORDER BY id desc 
LIMIT 10 OFFSET 0

仅与文本一起使用时效果很好。

但是当输入值像Deep*时不返回任何值

对此的任何帮助都非常受欢迎。

标签: mysqlsql

解决方案


这并不能直接回答您的问题。但是,如果您希望在 上进行过滤campaign_statuscampaign_type然后在 上进行过滤campaign_name_decoded,那么这就足够了:

WHERE campaign_status = '1' AND 
      campaign_type = 'o' AND
      campaign_name_decoded` LIKE '%Deep%'

%通配符匹配零个或多个字符,所以应该做你想做的事。

也就是说,如果某些广告系列名称不匹配,那是因为您在数据列或比较中包含无效(意外?)字符。


推荐阅读