CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(100),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
CREATE TRIGGER tr_users_bi
BEFORE INSERT ON users
FOR EACH ROW
BEGIN
DECLARE allowed_created_at DATETIME;
DECLARE error_message_text VARCHAR(64);
SELECT MAX(created_at) + INTERVAL 12 HOUR INTO allowed_created_at
FROM users
WHERE username = NEW.username;
IF NEW.created_at < allowed_created_at THEN
SET error_message_text = CONCAT('Регистрация возможна не ранее ', allowed_created_at);
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = error_message_text;
END IF;
END
WHERE `value` LIKE CONCAT('%', CHAR(92), CHAR(92), '%')
Количество(Склад Номер Х) = ВсегоТовара * НомерСклада / ВсегоСкладов - Количество(Склады Номер 1 .. Х-1)
Склад 1: количество = 5 * 1 / 3 - 0 = 1,666 = 2 штуки
Склад 2: количество = 5 * 2 / 3 - 2 = 1,333 = 1 штука
Склад 3: количество = 5 * 3 / 3 - (2 + 1) = 1,666 = 2 штуки
$amount = 5;
$num = 3;
for($used = 0, $i = 1; $i <= $num; $i++) {
$used += ($current = round($amount * $i / $num - $used));
echo("$i: $current\n");
}
WHERE CONV(LEFT(HEX('$entered_hash'), 40), 16, 10) = correct_hash
WHERE '{value1}' = '{value2}' OR '{value1}' LIKE '{value2}%'
первое условие заведомо лишнее (ведь если оно выполняется, то и второе тоже выполняется). SELECT c.name category_name, p.id post_id, p.name post_name, p.title post_title
FROM posts p
JOIN categories c ON p.category_id = c.id
UNION ALL
SELECT name, NULL, NULL, NULL
FROM categories
ORDER BY category_name, post_id IS NOT NULL
Или можно как-то в PDO подключаться не сразу к бд
USE new_default_database_name
SELECT name, `text`
FROM product
JOIN product_attribute USING (product_id)
JOIN attribute_description USING (attribute_id)
-- JOIN attribute USING (attribute_id) -- таблица в запросе не нужна
GROUP BY 1, 2
HAVING COUNT(*) > 1;
ORDER BY MAX(attribute_id)
HAVING COUNT(*) = 3
UPDATE table
SET {columns} = {values}
ORDER BY created_at ASC LIMIT 1;
Что будет лучше в плане скорости и нагрузки
aaa
bbb
ccc
["aaa", "bbb", "ccc"]
INSERT INTO destination_table (single_value)
SELECT single_value
FROM JSON_TABLE( ? ,
'$[*]' COLUMNS ( single_value VARCHAR(255) PATH '$' )) jsontable;