Примеры запросов MySQL

//Получить единственное значение
$name = mysql_result(mysql_query("SELECT name FROM games WHERE id = '55' LIMIT 1"),0);

//2001-03-10 17:16:18 (формат MySQL DATETIME)
$today = date("Y-m-d H:i:s"); 

// ПРИВЕР ВЫБОРКИ
$result = mysql_query ("SELECT * FROM `tool_autoru` WHERE flag = '1' AND id > '169'");
$export = array();
while($row = mysql_fetch_array($result)){
	$ta = array();
	$ta['name'] = $row['mark'];
	$ta['nameIndex'] = $row['markNameIndex'];
	$export[] = $ta;
}
echo json_encode($export);
# REPLACE
UPDATE `a_parser_status` SET `seria` =  REPLACE(`seria`, '/', ' - ');

# Простой INSERT
INSERT INTO oc_shoputils_personal_discounts_to_customer
SET discount_id = '3', customer_id = '5'

# Выбираем те alias, которые встречаются больше одного раза: (Запрос крайне тяжелый)
SELECT id, alias
FROM modx_site_content
WHERE (alias) IN (SELECT alias FROM modx_site_content GROUP BY alias HAVING COUNT(*) > 1)
ORDER BY alias
——————————————————————————————————————————————————

# Выборка из нескольких таблиц:

SELECT *,
(SELECT a.auto_name FROM auto a WHERE a.auto_id = t.tour_autoid) AS auto_name,
(SELECT c.client_name FROM client c WHERE c.client_id = t.tour_clientid) AS client_name
FROM tour t
WHERE t.tour_deleted = 0 WHERE tour_id = '".$data['id']."' LIMIT 1
——————————————————————————————————————————————————

# LEFT JOIN:

SELECT * FROM ztemp
LEFT JOIN client ON (client.client_id = ztemp.ztemp_clientid)
LEFT JOIN tarif ON (tarif.tarif_id = ztemp.ztemp_tarifid)
WHERE ztemp_deleted = 0 ORDER BY ztemp_id ASC
——————————————————————————————————————————————————

#
SELECT cc.*, t.tekst FROM cat_category cc
LEFT JOIN texts t ON cc.descr_text_id = t.id
WHERE cc.gr = '2' AND cc.id != '74' ORDER BY cc.id ASC

# Пример REPLACE:

UPDATE `a_parser_status` SET `seria` =  REPLACE(`seria`, '/', ' - ')
——————————————————————————————————————————————————

# Выборка по дате элементов, которые не содаржаться в некой таблице

SELECT p.product_id, p.price, p.date_added
FROM oc_product p
WHERE p.product_id NOT IN (SELECT DISTINCT ps.product_id FROM oc_product_special ps)
AND DATE(p.date_added) < DATE_SUB(NOW(), INTERVAL 3 MONTH)
——————————————————————————————————————————————————

#
SELECT * FROM cat_category WHERE id IN (SELECT DISTINCT category FROM catalog)
——————————————————————————————————————————————————

# Описание запроса: выбираем всю информацию о товаре и о наличии в магазинах.
# Магазинов несколько, и есть информация о том, сколько товара храниться в каком магазине.
# (за это отвечает строчка (SELECT SUM(c1...
# Мне было нужно получить в каждой строке сумму кол-ва именно этого товара
# (уникальная связка — артикул+размер) вообще доступно во всех магазинах.
# Также любопытной задачей было вывести значения из нескольких строк в одну строку с разделителем - GROUP_CONCAT...

SELECT
c.*,
cc.name AS colorname,
c1c.art AS c1c_art,
c1c.size AS c1c_size,
c1c.shop AS c1c_shop,
c1c.q AS c1c_q,
(SELECT SUM(c1c1.q) FROM catalog_1c_codes c1c1 WHERE c1c1.art = c1c.art AND c1c1.size = c1c.size group by c1c1.size) as total_of_size,
GROUP_CONCAT(DISTINCT IF(ph.large_photo='', null, CONCAT(ph.path, ph.large_photo)) SEPARATOR '|||') as dop_images_large,
# Для корректной работы GROUP_CONCAT нужно указать что-то вроде GROUP BY c.item_id
GROUP_CONCAT(DISTINCT IF(ph.big_photo='', null, CONCAT(ph.path, ph.big_photo)) SEPARATOR '|||') as dop_images_big

FROM catalog_1c_codes c1c
LEFT JOIN catalog c ON c.art = c1c.art
LEFT JOIN cat_category cc ON cc.id = c.colorid
LEFT JOIN photos ph ON ph.item_id = c.id

WHERE c.archive = '0' GROUP BY c.item_id ORDER BY c.id ASC
——————————————————————————————————————————————————




Комментарии (1)

  1. Олег Марсоходов 31 июля 2019, 11:53 # 0
    и этот твой GROUP_CONCAT создает 4-секундный запрос на жалких 200000 njdfhf[/// d njgre!!!
    *Комментарий будет опубликован после проверки модератором

    Похожие статьи

    Решение ошибки Field 'id' doesn't have a default value

    Примеры запросов

    Преобразовать кодировку в utf8 для базы MySQL

    Наш сайт использует куки, нажмите «ОК» если вы не против
    OK