$max_cart_item_count = 500;
$curr_cart_item_count = min(count($_SESSION['cart']), $max_cart_item_count);
for($i = 0; $i < $curr_cart_item_count; $i++)
....
WHERE `type`= '$id'
$stmt = $conn->stmt_init();
$stmt->prepare("SELECT * FROM `items` WHERE `type` = ?"); // подставляем текст запроса, причем на месте входных параметров ставим специальные маркеры - плейсхолдеры.
$stmt->bind_param("i", $id); // подставляем на место плейсхолдера значение параметра как целочисленный тип
$stmt->execute(); // вот теперь можно выполнить запрос
$result = $stmt->get_result();
while($row = $result->fetch_assoc())
{
// Обработка результатов
}
select C.Id
from News N
join Categories_Of_News CoN on CoN.News_Id = N.Id
join Category C on C.Id = CoN.Category_Id
where N.Id = :news_id
артикулом/категорией/брендом/названием/ценой
SELECT * FROM `test` WHERE `time` >= (now() - INTERVAL 10 MINUTE);
update `table` set атрибут_не_первичный_ключ = 1
where id in (1, 2, 4, 10);
update table
set id = case
when id = 1 then -1
when id = 2 then -2
when id = 4 then -4
when id = 10 then -10
else id -- страховка от дурака, если неправильно описан in
end
where id in (1, 2, 4, 10)
update table
set id = case
when id = -1 then 2
when id = -2 then 4
when id = -4 then 10
when id = -10 then 1
else id -- страховка от дурака, если неправильно описан in
end
where id in (-1, -2, -4, -10)
UPDATE article SET visits=(visits+1) WHERE id='".$theme_idss."' LIMIT 1
UPDATE article
SET visits=(visits+1),
today = today + 1 -- суточные посещения
WHERE id='".$theme_idss."' -- когда разберетесь, что такое sql-инъекция, то перепишите все запросы, использующие такой стиль подстановки параметров (склеиванием строк)
LIMIT 1 -- после того, как разберетесь, является ли id первичным ключом, можно убрать лимит
ALTER TABLE article
ADD COLUMN today int default 0 AFTER visits
UPDATE article
SET today = 0
select * from t
where t.idProduct = :id_product and t.relatedProduct <> :id_product -- сравнение с <> исключает петлю на собственной вершине
select * from t
where ( (t.idProduct = :id_product and t.relatedProduct <> :id_product) -- сравнение с <> исключает петлю на собственной вершине
or (t.relatedProduct = :id_product and t.idProduct <> :id_product))
select * from
(select r.id as reader_id, r.first_name, r.last_name, b.id book_id, b.name, b.pub_date, row_number() over (partition by r.id order by l.taken_at desc) as rownum
from readers r
left join log_taking l on r.id = l.reader_id
left join books b on b.id = l.book_id
) a
where a.rownum = 1
INSERT into archive (title_product, title_category, price_product)
SELECT p.title, c.title, p.price
from product p
join category c on p.category_id = c.id
-- MySQL
select u.user_id, child_bdays.bday
from user u,
JSON_TABLE(u.children, '$[*]' COLUMNS (
bday VARCHAR(10) PATH '$'
)) child_bdays
where STR_TO_DATE(child_bdays.bday, "%Y-%m-%d") >= DATE(now() - INTERVAL 7 DAY)
and STR_TO_DATE(child_bdays.bday, "%Y-%m-%d") <= DATE(now() + INTERVAL 7 DAY);
-- MariaDB
select u.user_id, JSON_EXTRACT(u.children, concat('$[', idx_table.idx, ']')) as bday
from user u,
(select 0 idx union select 1 union select 2 union
select 3 union select 4 union select 5 union
select 6 union select 7 union select 8 union
select 9 union select 10 union select 11) idx_table /* впомогательная выборка для генерации индексов в диапазоне 0...11 */
where idx_table.idx < json_length(u.children) /* отсекаем обращения к несуществующим индексам элементов в JSON*/
and STR_TO_DATE(JSON_EXTRACT(u.children, concat('$[', idx_table.idx, ']')), "%Y-%m-%d") >= DATE(now() - INTERVAL 7 DAY)
and STR_TO_DATE(JSON_EXTRACT(u.children, concat('$[', idx_table.idx, ']')), "%Y-%m-%d") <= DATE(now() + INTERVAL 7 DAY)
update определенная_таблица т1
set т1.определенное_поле_2 = т1.определенное_поле_1
where т1.определенное_поле_x = опреленное_значение -- использовать опционально для конкретных записей
update table tb
set tb.type_id = (select tp.id from types tp where tp.name = tb.type_name limit 1) -- выбираем подзапросом id из справочника по совпадению наименования поля в обновляемой таблице
where tb.type_id is null -- страховка, что будем обновлять не установленные значения
and exists(select 1 from types tp where tp.name = tb.type_name) -- будем ставить ключ, если есть наименование в справочнике types
... на глобальном сбой.
$this->go_to_back_one_stap = explode('.ru', $_SERVER['HTTP_REFERER']);
Обе программы получают из базы данные и работают с ними. Так вот я хочу исключить вероятность получения одних и тех же данных обеими програмамми. Сейчас у меня в коде используется using и в нем идет открытие соединения. Далее, получаем данные, в определенном столбце таблицы я помечаю, что данные взяты, что свидетельствует второй программе о том, чтобы она эти данные уже не брала.
header('Content-Type: text/html; charset=utf8', true);
SELECT p.*,
case
when exists(SELECT 1 from cart c where c.products_id = p.id)
then 1
else 0
end is_exists_in_cart -- есть товар к корзине? 0 - нет, 1 - есть
FROM table_products p
SELECT p.*, c.*
FROM table_products p
left join cart c on c.products_id = p.id