MySQL使用带有通配符问题的'not in'列表

时间:2016-11-09 22:15:05

标签: mysql wordpress

我使用现有的wordpress db作为学习环境编写以下SQL语句...

Select
  wp.ID,
  wpum.user_id,
  wpp.post_name
From
  wp_users As wp Left Join
  wp_usermeta As wpum
    On wp.ID = wpum.user_id Left Join
  wp_posts As wpp
    On wpum.user_id = wpp.post_author
Where
  wpp.post_status = 'publish' and
  wpum.meta_key = 'nickname' and
  wpp.post_name not in ('sample%', 'hello%')
order by
    wpp.ID desc

正如您所看到的,我已经为我的表使用了别名,并将我的帖子结果过滤为仅仅是“已发布”的帖子,并且仅选择昵称以避免user_id出现重复结果。

我的问题是通配符似乎没有做任何事情。我的结果与样本&标题帖仍然显示。

但是,这可以作为:

Select
  wp.ID,
  wpum.user_id,
  wpp.post_name
From
  wp_users As wp Left Join
  wp_usermeta As wpum
    On wp.ID = wpum.user_id Left Join
  wp_posts As wpp
    On wpum.user_id = wpp.post_author
Where
  wpp.post_status = 'publish' and
  wpum.meta_key = 'nickname' and
  wpp.post_name not like  'sample%' and 
  wpp.post_name not like 'hello%'
order by
    wpp.ID desc

我的输出结果已移除所需的结果..有谁能帮我解决?第二个例子非常实用......我只想知道我学习良好实践的替代方法。 我尝试使用谷歌搜索并使用一些例子,但没有太多运气。

全部谢谢

如果我的帖子格式错误或者之前已经回答过,那么Apol是我的搜索结果!

0 个答案:

没有答案