2014-12-08 2 views
0

У меня есть столбец Mysql Varchar, называемый «ссылка», содержащий URL-адреса. например:добавить строку в столбец, который соответствует creteria

"? вариант index.php = com_k2 & вид = пункт & раскладка = пункт & ID = 35"

я хотел бы добавить нулевой символ в идентификаторах для всех ссылок, которые имеют строка «вариант index.php? = com_k2 & вид = пункт & раскладка = пункт & ID =» в них

, а также отвечают критериям, имеющие значение «топ-меню» в «menutype» column.

результат будет таким: "index.php вариант = com_k2 & вид = пункт & раскладка = пункт & ID = 350?"

я этого заявления

UPDATE таблица SET link = CONCAT_WS ('', '0', 'ссылка') где menutype = 'верхнего меню'

, но как добавить его только к ссылкам, которые имеют строку «index.php? Option = com_k2 & view = item & layout = item & id =" В них?

Благодаря

ответ

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) = '' 
+0

извините, я не испытал это, так как ответ Бена уже проделал эту работу, спасибо – buzibuzi

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=%' 
+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 =% ' – buzibuzi

+0

G парень, я мог бы помочь. :) –

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=%' 
Смежные вопросы