我有一个名为"链接"的Mysql Varchar列。包含网址。例如:
" index.php的选项= com_k2&安培;图=项&安培;布局=项和ID = 35"
我想为所有包含该字符串的链接的id添加一个零字符 " index.php?option = com_k2& view = item& layout = item& id =" in
并且还符合" menutype" 列中"顶级菜单" 的标准。
结果将是这样的: 的" index.php的选项= com_k2&安培;图=项&安培;布局=项和ID = 350"
我有这个陈述
更新表格SET
link
= CONCAT_WS(''' 0'' link')WHERE menutype ='顶菜单'
但是如何将其附加到仅链接具有字符串" index.php?option = com_k2& view = item& layout = item& id =" 的值他们?
由于
答案 0 :(得分:1)
您可以使用substring_index
查看id
mysql> select substring_index('index.php?option=com_k2&view=item&layout=item&id=','id=',-1);
+-------------------------------------------------------------------------------+
| substring_index('index.php?option=com_k2&view=item&layout=item&id=','id=',-1) |
+-------------------------------------------------------------------------------+
| |
+-------------------------------------------------------------------------------+
1 row in set (0.00 sec)
mysql> select substring_index('index.php?option=com_k2&view=item&layout=item&id=0','id=',-1);
+--------------------------------------------------------------------------------+
| substring_index('index.php?option=com_k2&view=item&layout=item&id=0','id=',-1) |
+--------------------------------------------------------------------------------+
| 0 |
+--------------------------------------------------------------------------------+
因此,在更新语句中,您的条件可能为
WHERE menutype='top-menu'
and
substring_index(link,'id=',-1) = ''
答案 1 :(得分:1)
假设一个链接字段包含" index.php?option = com_k2& view = item& layout = item& id ="也始终从该值开始,这个陈述应该可以解决这个问题:
UPDATE table
SET link = CONCAT_WS('','0','link')
WHERE menutype='top-menu'
AND link LIKE 'index.php?option=com_k2&view=item&layout=item&id=%'
答案 2 :(得分:0)
感谢@Ben Pi,我设法找到正确的方法
UPDATE jos_menu SET link = CONCAT(link,'0') WHERE menutype='top-menu' AND link LIKE 'index.php?option=com_k2&view=item&layout=item&id=%'