//Получить единственное значение
$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)
Не писать ответ