2016-06-22 4 views
0

У меня есть проблема с функцией замены в MySQL, напримерошибка с функцией замены в MySQL

set @str = "Category, CategoryName, CategoryID"; 
SELECT REPLACE (@str, "Category", "125"); 

Я хотел бы заменить только первое слово «Категория» и вот результат:

125,125Name, 125ID 

как исправить проблему

спасибо заранее

ответ

1

Если вы действительно хотите использовать MySQL REPLACE функции, единственный вариант я вижу это:

set @str = "Category, CategoryName, CategoryID"; 
SELECT REPLACE (@str, "Category,", "125,"); 
0

Если вы хотите заменить только первые символы (если вы определяете первые буквы должна быть равна строке "Категория") вы можете дать попробовать:

SELECT 
    fieldname, 
    REPLACE(fieldname, 'Category', '125'), 
    LEFT(fieldname, 8), 
    RIGHT(fieldname, (LENGTH(fieldname)-8)), 
    CONCAT('125', RIGHT(fieldname, (LENGTH(fieldname)-8))) 
FROM tablename 
WHERE LOWER(LEFT(fieldname, 8)) = 'category'; 

Ваш результат выглядеть следующим образом:

CategoryNameCategorySomethingElse | 125Name125SomethingElse | 
Category | NameCategorySomethingElse | 125NameCategorySomethingElse 

Теперь вы можете подготовить свой stateme обновления nt:

UPDATE tablename 
SET fieldname = CONCAT('123', RIGHT(fieldname, (LENGTH(fieldname)-8))) 
WHERE LOWER(LEFT(fieldname, 8)) = 'category'; 
Смежные вопросы