SELECT Users.*,
ph.value->>'phone' as phone
FROM Users, json_array_elements(Users.phones) as ph
where ph.value->>'phone' like '7%3';
select A.*
from (SELECT `date`, `name`, phone, count() over (partition by phone) phone_count
FROM `myusers`
) A
where A.phone_count > 1
ORDER BY date ASC
select `date`, `name`, phone, p.phone_count
from `myusers` as mu
join (SELECT phone, count(*) phone_count
FROM `myusers`
group by phone) p on p.phone = mu.phone
where p.phone_count > 1
ORDER BY mu.date ASC
NOW()
нельзя, но с учётом того, что срабатывание триггера выполняется только один раз, в момент на которое указывает поле modified
можно использовать его. Также приведя условия статуса к верной логике получаем (MySQL online):-- create
CREATE TABLE airdrops (
start_date datetime NOT NULL,
end_date datetime NOT NULL,
modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
status int(11) AS ( case
when modified < start_date THEN 0
when modified >= start_date AND modified <= end_date THEN 1
when modified > end_date THEN 2
else -1
end )
);
-- insert
INSERT INTO airdrops (start_date, end_date) VALUES ( '2024-03-12', '2024-03-31') ;
INSERT INTO airdrops (start_date, end_date) VALUES ( '2024-03-01', '2024-03-31') ;
INSERT INTO airdrops (start_date, end_date) VALUES ( '2024-03-02', '2024-03-09') ;
-- fetch
SELECT * FROM airdrops;
статус 2 устанавливался автоматически если текущая датаИспользовать представление (MySQL online)
-- create
CREATE TABLE airdrops (
start_date datetime NOT NULL,
end_date datetime NOT NULL
);
-- insert
INSERT INTO airdrops (start_date, end_date) VALUES ( '2024-03-12', '2024-03-31') ;
INSERT INTO airdrops (start_date, end_date) VALUES ( '2024-03-01', '2024-03-31') ;
INSERT INTO airdrops (start_date, end_date) VALUES ( '2024-03-02', '2024-03-09') ;
-- view
CREATE VIEW airdrops_status
AS
SELECT start_date, end_date,
case
when NOW() < start_date THEN 0
when NOW() >= start_date AND NOW() <= end_date THEN 1
when NOW() > end_date THEN 2
else -1
end AS status
FROM airdrops;
-- fetch
SELECT * FROM airdrops_status;
fetch_assoc()
: возвращает всю строку в ассоциативный массивfetch_row()
: возвращает нумерованный массив (список)fetch_obj()
: возвращает объект класса stdClassfetch_column()
: возвращает значение из первой колонки запрошенной строки$sql = "SELECT link FROM tablet where id=?";
$result = $conn->execute_query($sql, [$a]);
$link = $result->fetch_column();
function Axelmo($conn) {
$sql2 = "SELECT link FROM tablet ORDER BY rand() LIMIT 1";
return $conn->query($sql)->fetch_column();
}
function Axelmo($min, $max, $conn) {
$sql2 = "SELECT link FROM tablet where id >= ? AND id <= ? ORDER BY rand() LIMIT 1";
return $conn->execute_query($sql, [$min, $max])->fetch_column();
}
UPDATE TableA LEFT JOIN (
SELECT MIN(Id) AS id, Name FROM TableB GROUP BY Name
) AS b
ON TableA.Name = b.Name
SET TableA.TableBId = b.id
SELECT TOP (100)
[error_number] ,
[error_desc],
COUNT([error_number])as total
FROM Db.tab_error
group by error_number, error_desc
SELECT TOP (100)
[error_number] ,
[error_desc],
COUNT(*) over (partition by [error_number]) as total
FROM Db.tab_error
То есть я могу отправить:Во-первых, если важно получить 012345, то надо посылать в одной датаграмме 012345, а не в шести отдельно по одному символу.
012345
А получить:
253401
USE [master]
GO
CREATE DATABASE [Testus_copy] ON
( FILENAME = N'C:\MSSQL\Testus_copy.mdf' ),
( FILENAME = N'C:\MSSQL\Testus_copy.ldf' )
FOR ATTACH
GO