2015-08-17 2 views
1

У меня есть следующий формат таблицы.разделите столбец в mysql в соответствии с другим столбцом в той же таблице

Name_of_Car     ||  model   || engine_type 
VW petrol engine PassatSE  ||  passat   || petrol engine 

Мне нужно выбрать значение из вышеуказанных столбцов следующим образом.

VW passatSE petrol engine . 

мне нужно проверить, если engine_type существует в name_of_car поле. И если он существует, разделите его в формате brand name, model, engine_type. Мне нужно снять и выбрать из колонки Name_of_car.

+0

Что означает «Разделить это», и что означает «Разделить его и выбрать из». Если 'engine_type' существует в' name_of_car', как в этом примере, то что вы хотите вернуть в своем результирующем наборе. – JNevill

+0

Да. Если столбец engine_type не равен нулю, значение engine_type будет существовать в столбце name_of_car. то мне нужно отобразить: «Бензиновый двигатель VW PassatSE» в этом формате. – Abhijeet

ответ

1

Не 100% уверен, что на выходном формате, который вы хотите, но вы можете очистить Name_of_Car поле, используя функцию MySQL [REPLACE][1], такие как:

SELECT REPLACE (Name_of_Car, engine_type, ': '), model, engine_type 
from testcar 

Чтобы получить все это в одну строку:

SELECT CONCAT_WS(' ', REPLACE (Name_of_Car, engine_type, ': '), model, engine_type) 
FROM testcar 

Предполагая, что ваше имя таблицы testcar.

+1

Этот способ, кажется, приближает меня к формату, который я хочу. Мне просто интересно, почему вы использовали ** CONCAT_WS ('', ** первое пустое пространство – Abhijeet

+0

Первый параметр функции 'CONCAT_WS()' является разделительной строкой - см. Https://dev.mysql.com/doc/refman /5.0/en/string-functions.html#function_concat-ws – Ryan