#php #mysql
#php #mysql
Вопрос:
таблица 1: products
содержит поля:
products_id
products_price
products_status = 1( In Stock )
products_url
таблица 2: products_description
содержит поля:
products_id(equals products_id in table products )
products_name
Я хочу получить пять относительных наименований продуктов (на складе) и их цену, которая соответствует некоторой части названия продуктов.
Например, название продукта $product_name
. Я хочу получить пять относительных наименований продуктов (в наличии) и их цену.
$query = "select products_id , products_price, products_name
from products p
left join products_description pd on p.products_id=pd.products_id and products_status = 1 and ....";`
Совпадение выглядит следующим образом: если название продукта — True Blood Season 1 DVD
я хочу показать пять элементов, которые начинаются с «True Blood Season «. название продуктов может быть другим. это не только настоящий сезон крови
Как мне написать это в SQL?
Комментарии:
1.
SELECT * FROM products WHERE products_name LIKE 'True Blood Season%' LIMIT 5;
? Как вы написали запрос с левыми соединениями и т. Д., Если вы не можете этого сделать?2. извините, я привожу пример, products_name, возможно, другие,
3. Я действительно не знаю, что это значит. Вы не сможете автоматически выбирать «связанные продукты» на основе названия выбранных продуктов. Это должен быть отдельный запрос после того, как вы узнаете, какую часть имени использовать.
4. я имею в виду, что на моем сайте есть много названий продуктов, в вашей команде sql вы исправили название продукта (НАПРИМЕР, ‘True Blood Season%’)
5. почему не удастся автоматически выбирать «связанные продукты» на основе названия выбранных продуктов. Спасибо
Ответ №1:
SELECT `products_id`, `products_price`, `products_name` FROM `products` p
LEFT JOIN `products_description` pd ON p.products_id = pd.products_id
WHERE `products_name` LIKE 'True Blood Season%' AND `products_status` = 1
ORDER BY `products_name` LIMIT 5;
Должно быть что-то вроде приведенного выше, но это просто не укладывается у меня в голове.
Комментарии:
1. извините, я привожу пример, products_name, возможно, другие,
2. Извините, я не уверен, что вы ищете, вам нужно извлекать разные значения?
3. я имею в виду, что на моем сайте есть много названий продуктов, в вашей команде sql вы исправили название продукта (НАПРИМЕР, ‘True Blood Season%’)
4. Затем, когда вы создаете свой запрос на PHP, вам нужно подставить название продукта в запрос.
...WHERE products_name LIKE '".$dbConn->quote($yourSearchName)."%'...
и т.д. $DBConn-> quote() предназначен для защиты от sqlinjection, более подробная информация доступна здесь: php.net/manual/en/pdo.quote.php (это если вы используете PDO). Для mysqli доступны другие методы