SELECT * FROM `prods` WHERE `name` LIKE '%запрос%' OR `sku` LIKE '%запрос%'
К примеру, нужно что-бы искались фразы название + бренд, но бренды хранятся в отдельной таблице.
SELECT
`a`.*,
CONCAT(`a`.`name`, ' ', `b`.`name`) AS `full_name`
FROM
`prods` AS `a`
LEFT JOIN
`brands` AS `b` ON `a`.`brands_id` = `b`.`id`
HAVING
`full_name` LIKE '%Кроссовки Adidas%'
SELECT * FROM `prods` WHERE `price` BETWEEN '100' AND '2000'
SELECT * FROM `prods` WHERE `category` = 10 ORDER BY `name`
Поле `category_list` содержит список id (1,2,3,4,5...).
Нужно найти товары, у которых в этом списке попадается значение 2.
SELECT * FROM `prods` WHERE FIND_IN_SET(2, `category_list`)
Поле `category` содержит список id, разделенный запятыми (1,2,3,4,5...).
Нужно найти записи, у которых хоть одно значение пересекается со списком 1,3,5.
SELECT * FROM `prods` WHERE `category` REGEXP '(^|,)(1|3|5)(,|$)'
SELECT * FROM `prods` WHERE `category` IN(1,2,3) ORDER BY `name`
SELECT
*,
(SELECT COUNT(`id`) FROM `prods` WHERE `category_id` = `category`.`id`) AS `count_prods`
FROM
`category`
ORDER BY
`name`
SELECT
*
FROM
`category`
WHERE
(SELECT COUNT(`id`) FROM `prods` WHERE `category_id` = `category`.`id`) > 0
ORDER BY
`name`





