&sortby = `{"CAST(replace(option_01,',',char(46)) AS DECIMAL(13,3))": "ASC"}`
20 таблицами в которых рассортированы сериалы по разным жанрам.
group by year ...
group by EXTRACT(year from CAST(invoice_date as date)) ...
Select t1.ID, t1.TIME
from
TABLE_1 t1
JOIN TABLE_2 t2 ON t1.ID=t2.ID
and to_char(t1.TIME, 'DD.MM.YYYY HH24') = to_char(t2.TIME, 'DD.MM.YYYY HH24')
... and trunc(t1.TIME, 'hh24') = trunc(t2.TIME, 'hh24')
SELECT `user_id`, `username`, `first_name`,`last_name`, `title`
FROM `userdata`
WHERE `type` in ('supergroup', 'group')
SELECT `user_id`, `username`, `first_name`,`last_name`, `title`
FROM `userdata`
WHERE `type` = 'supergroup'
OR `type` = 'group'
join t1 on t1.a_id = t2.id
and t1.begin_date < t2.end_date
join t1 on t2.id = t1.a_id
and t2.end_date > t1.begin_date
select a.id, a.name,
b.position
...
select a.id
, a.name
, b.position
select a.id, a.name,
b.position
function claim_message($msg, $msgFh, $msgTh, $uuid)
{
$var = R::findOne("messages", "msg_th = ? AND is_read = 0'", [$msgTh]);
if(!is_null($var))
{
$delete = R::load("messages", $var->id);
R::trash($delete);
return $msg;
}
return "null; $msgTh , $msgFh";
}
SELECT a.*, ai.name_img_file, ai.src, ai.title as img_title
FROM adverts as a
join advert_imgs as ai on a.id = ai.id_adv
WHERE 1 = 1
AND exists( select 1 from adverts_fields af where a.id = af.id_advert and af.field_name = 'storey_apartament' AND af.field_value = '58')
AND exists( select 1 from adverts_fields af where a.id = af.id_advert and af.field_name = 'condition_house' AND af.field_value = '13')
AND exists( select 1 from adverts_fields af where a.id = af.id_advert and af.field_name = 'Sleeping'AND af.field_value = '38')
AND exists( select 1 from adverts_fields af where a.id = af.id_advert and af.field_name = 'Availability' AND af.field_value = '48')
AND exists( select 1 from adverts_fields af where a.id = af.id_advert and af.field_name = 'Bathroom' AND af.field_value = '77')
AND exists( select 1 from adverts_fields af where a.id = af.id_advert and af.field_name = 'Heating'AND af.field_value = '26')
AND exists( select 1 from adverts_fields af where a.id = af.id_advert and af.field_name = 'Furnished' AND af.field_value = '14')
AND exists( select 1 from adverts_fields af where a.id = af.id_advert and af.field_name = 'kitchen_area' AND af.field_value = '34')
ORDER BY `title` DESC
select A.point_id, A.schedule_calendar_id, A.date, count(*) cnt
from (
select distinct s.user_id, s.point_id, s.schedule_calendar_id, sc.date
from schedule s
join schedule_calendar sc on s.schedule_calendar_id = sc.id
) A
group by A.point_id, A.schedule_calendar_id, A.date
having count(*) > 1
SELECT ms2.*, ec.rating
FROM `rt_ms2_products` AS `ms2`
LEFT JOIN `rt_ms2_reviews` AS `ec` ON ms2.id=ec.id
GROUP BY ms2.id
ORDER BY ms2.availability = 0, ec.rating DESC
LIMIT 0, 20
SELECT ms2.*, ec.rating
FROM `rt_ms2_products` AS `ms2`
LEFT JOIN `rt_ms2_reviews` AS `ec` ON ms2.id=ec.id
GROUP BY ms2.id
ORDER BY case when ms2.availability = 0 then 1 else 0 end, ec.rating DESC
LIMIT 0, 20
"SELECT * FROM [dbo].[data] WHERE ([dbo].[data].[intField] " + (p1 ? "" : "NOT") + " IN (0,1,2,8,9))"
SELECT * FROM [dbo].[data]
WHERE @p1 = true and [dbo].[data].[intField] IN (0,1,2,8,9)
or @p1 = false and [dbo].[data].[intField] NOT IN (0,1,2,8,9)
SELECT * FROM [dbo].[data]
WHERE @p1 = 0 and [dbo].[data].[intField] IN (0,1,2,8,9)
or @p1 = 1 and [dbo].[data].[intField] NOT IN (0,1,2,8,9)
И мне нужно использовать такую конструкцию:
select food.* from table
select food.*
from(select t.Milk as food_Milk, t.Oil as food_Oil
from table as t) as food
$need_count = 10; // сколько требуется файлов для выборки
$alive_count = 0; // сколько живых файлов
$is_need_repeat = true; // требуется повторить попытку получить живые файлы
$death_list = []; // сюда накапливаем список id мертвых файлов
$alive_list = []; // сюда накапливаем список id живых файлов
while($is_need_repeat) // Если можно делать итерационную попытку и пока не набрали нужное количество живых файлов
{
// Этот запрос, чтобы прощупать целостность файлов, достаточно получить только те атрибуты, которые позволяют проверить его путь и запомнить id.
$database->setQuery("
SELECT id
from блаблабла
WHERE блаблабла
".(count($depth_list) > 0 ? : ' and id not in ('.join(',',$death_list).') ' : '')." -- отсеиваем мертвые файлы из запроса, они нам не нужны
".(count($alive_list) > 0 ? : ' and id not in ('.join(',',$alive_list).') ' : '')." -- отсеиваем живые файлы из запроса, мы их уже проверяли
ORDER блаблабла
limit 0,".($need_count - $alive_count)); // делаем лимит по оптимистичному сценарию, как будто можем получить список файлов, и все они будут живые, но только то кол-во, которое недостает
while($row = mysql_fetch_assoc($request))
{
if(file_exists('/www/ПУТЬ/'.$row['id'].'_100.jpg'))
{
$alive_list[] = $row['id']; // файл живой, заносим его id в список
}
else
{
$death_list[] = $row['id']; // файл мертвый, заносим его id в список
}
$curr_alive_count = count($alive_list);
$is_need_repeat = $curr_alive_count > 0 && $curr_alive_count > $alive_count && $curr_alive_count < $need_count; // необходимо продолжить попытки, если на текущей итерации получили хоть один живой файл, живых файлов на этой итерации оказалось больше, чем на предыдущей, и их кол-во не достаточно до необходимого
$alive_count = $curr_alive_count; // вписываем кол-во живых файлов на текущей итерации для проверки в будущем цикле (чтобы сравнить результаты двух циклов)
}
}
// теперь можно сделать нормальный запрос, исключив мертвые файлы:
$database->setQuery("
SELECT *
from блаблабла
WHERE блаблабла
".(count($depth_list) > 0 ? : ' and id not in ('.join(',',$death_list).') ' : '')." -- отсеиваем мертвые файлы из запроса
ORDER блаблабла
limit 0,".$need_count);
$database->setQuery("
SELECT *
from блаблабла
WHERE блаблабла
and is_del is null -- или нулю, в зависимости, что будет по умолчанию
ORDER блаблабла
limit 0,".$need_count);