Подтвердить что ты не робот

Объединить строку с значением поля в MySQL

Мне нужно объединить строку с значением поля в запросе MySQL, чтобы LEFT JOIN две таблицы.

В первой таблице есть столбец с названием "category_id" с числовыми значениями, такими как 61, 78, 94 и т.д.

В таблице 2 есть столбец с именем "запрос", который ссылается на механизм маршрута запроса, и он имеет такие значения, как "product_id = 68", "category_id = 74", "manufacturer_id = 99" и т.д.

Поэтому в моем запросе мне нужно присоединиться к таблицам, когда когда-либо конкатенированная строка, полученная из заданной строки, и значение столбца "category_id" соответствует полю запроса.

В настоящее время моя инструкция SQL:

SELECT * FROM tableOne 
LEFT JOIN tableTwo
ON tableTwo.query = 'category_id=' + tableOne.category_id

Я попытался использовать || оператора вместо оператора +, но все равно не повезло. Возможно ли это сделать в MySQL, или я тут же нажал на пистолет?

4b9b3361

Ответ 1

Вы пытались использовать функцию concat()?

ON tableTwo.query = concat('category_id=',tableOne.category_id)

Ответ 2

SELECT ..., CONCAT( 'category_id=', tableOne.category_id) as query2  FROM tableOne 
LEFT JOIN tableTwo
ON tableTwo.query = query2

Ответ 3

Вот отличный ответ на этот вопрос:

SET sql_mode='PIPES_AS_CONCAT';

Подробнее здесь: fooobar.com/questions/108681/...

Здесь полный SQL:

SET sql_mode='PIPES_AS_CONCAT';

SELECT * FROM tableOne 
LEFT JOIN tableTwo
ON tableTwo.query = 'category_id=' || tableOne.category_id;

Ответ 4

MySQL использует CONCAT() для конкатенации строк

SELECT * FROM tableOne 
LEFT JOIN tableTwo
ON tableTwo.query = CONCAT('category_id=', tableOne.category_id)