MYSQL LIKE匹配字符串的一部分

时间:2015-07-30 02:43:55

标签: php mysql

我有一个查询,但似乎无法让它工作。

这是我在mysql表字符串中特意寻找的内容

link = index.php?option = com_content& view = article& layout = custom:article& id = 13

我需要做一个匹配view = article的MYSQL查询,这样我就可以排除那些有这个的行。

SELECT * FROM menus WHERE published=1 AND link LIKE '\view=\article\%'

提前告诉你

更新的代码:

<field 
class="menuselections" 
name="bannerpage" 
type="sql" 
default="" 
label="Show On Menus" 
query="SELECT * FROM #__menu WHERE published=1 AND link LIKE '%\view=\article\%' AND title NOT IN('Menu_item_Root','com_joomlaupdate')" 
key_field="id" 
value_field="title" 
multiple="true" />

2 个答案:

答案 0 :(得分:4)

我没有足够的声望点来评论杰西卡的答案,这基本上是正确的。我建议的唯一变化是从like子句中删除反斜杠(并保留前导通配符'%'字符):

SELECT * FROM menus WHERE published=1 AND link LIKE '%view=article%';

反斜杠用于转义字符串中的字符,这不是您在这种情况下尝试执行的操作。

答案 1 :(得分:2)

在给定示例的情况下,您需要在字符串的两端使用通配符。

SELECT * FROM menus WHERE published=1 AND link LIKE '%view=article%'

但是,既然你说要删除它们,请改用NOT LIKE。