Использование CONCAT, CONCAT WS и GROUP CONCAT
Я строю запрос, в который я ищу, результаты внутри объединения и уловил достаточно, чтобы позвать на помощь. В настоящее время я использую MySQL с приложением на PHP.
и В примере ниже, я ищу слова "F1000" и "GRID" в конкатенации столбцов из обеих таблиц. Продукт может иметь или не иметь сетку.
SELECT p.id,
p.id_maker,
p.name,
p.description,
p.specifications
FROM product AS p
WHERE CONCAT(
CONCAT_WS(
' ',
p.name,
p.description,
p.specifications
), ', ',
GROUP_CONCAT(
(
SELECT CONCAT_WS(
' ',
g.description,
g.original_cod_maker
)
FROM product_grid AS g
WHERE g.fk_son = p.id
)
SEPARATOR ', ')
)
REGEXP '(.*)GRID(.*)F1000(.*)'
Этот запрос показывает ошибку 1111 (invalid use of group function) для использования методов объединения.
Благодарю уже сейчас на вашу помощь.
4
1 answers
Команда GROUP_CONCAT
служит для объединения групп при использовании агрегатных функций, как SUM
, MAX
, AVG
, etc.
Для вашего запроса, вы можете просто искать в областях непосредственно. Предложение query:
SELECT p.id,
p.id_maker,
p.name,
p.description,
p.specifications
FROM product AS p
LEFT JOIN product_grid AS g
ON (p.id = g.fk_son)
WHERE (
p.name LIKE '%GRID%' OR p.name LIKE '%F1000%'
OR
p.description LIKE '%GRID%' OR p.description LIKE '%F1000%'
OR
p.specifications LIKE '%GRID%' OR p.specifications LIKE '%F1000%'
OR
g.description LIKE '%GRID%' OR g.description LIKE '%F1000%'
OR
g.original_cod_maker LIKE '%GRID%' OR g.original_cod_maker LIKE '%F1000%'
)
2
Author: jlHertel, 2017-02-14 11:18:53