UPDATE "xml_files" set action_type = 'data_insert' where action_type is null;
UPDATE "xml_files" set action_type = 'data_insert' where action_type is null and id < 1000000;
UPDATE "xml_files" set action_type = 'data_insert' where action_type is null and id >= 1000000 and id < 2000000;
...
SELECT * FROM users WHERE id IN (
SELECT user_id FROM user_categories WHERE category_id IN (1, 2, 3)
)
SELECT u.* FROM users u JOIN (
SELECT user_id, array_agg(category_id) cats FROM user_categories WHERE category_id IN (1, 2, 3) GROUP BY 1
) uc ON (u.id = uc.user_id)
WHERE cats @> ARRAY[1, 2, 3]
-- также при UNIQUE ограничении на (user_id, category_id) подойдет
SELECT u.* FROM users u JOIN (
SELECT user_id, COUNT(*) ncats FROM user_categories WHERE category_id IN (1, 2, 3) GROUP BY 1
) uc ON (u.id = uc.user_id)
WHERE ncats = 3
?
'["a", "b", "c"]'::jsonb ? 'b' → t
SELECT * FROM products ID > 'max id in prod db'
), то на тестовой выгружаем (в данном случае через psql):\copy (SELECT * FROM products ID > ...) to 'products.dat'
\copy products from 'products.dat'
дате 2 переменная не присвоиласьприсвоилась, просто вы ее не используете. Пишите второй такой же if/foreach для $data2.
Это дата вылета, в jasone она выглядит вот так departure_at":"2021-07-30T01:20:00+03:00" а ее нужн сократить до дня
echo $replace_value('departure_at', ...
- не знаю, что она означает. //add the two handles
curl_multi_add_handle($mh,$ch1);
curl_multi_add_handle($mh,$ch2);
//execute the multi handle
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);
$data1 = curl_multi_getcontent($ch1);
print "RESPONSE1: $data1<br><br>";
$data2 = curl_multi_getcontent($ch2);
print "RESPONSE2: $data2<br><br>";
$data1 = json_decode($data1, true);
print "DATA1: ";
var_dump($data1);
$data2 = json_decode($data2, true);
print "DATA2: ";
var_dump($data2);
//close the handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
// create both cURL resources
$ch1 = curl_init();
$ch2 = curl_init();
// set URL and other appropriate options
curl_setopt($ch1, CURLOPT_URL, "https://site.ru/aviasales/v3/prices_for_dates?origin=MOW&destination=LED&token=******&departure_at=" . date('Y-m-d') );
curl_setopt($ch1, CURLOPT_HEADER, 0);
curl_setopt($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch2, CURLOPT_URL, "https://api.travelpayouts.com/aviasales/v3/prices_for_dates?origin=MOW&destination=AER&token=*******&departure_at=" . date('Y-m-d') );
curl_setopt($ch2, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
//create the multiple cURL handle
$mh = curl_multi_init();
//add the two handles
curl_multi_add_handle($mh,$ch1);
//execute the multi handle
do {
$status = curl_multi_exec($mh, $active);
if ($active) {
curl_multi_select($mh);
}
} while ($active && $status == CURLM_OK);
curl_multi_add_handle($mh,$ch2);
$data1 = json_decode(curl_multi_getcontent($ch1), true);
$data2 = json_decode(curl_multi_getcontent($ch2), true);
//close the handles
curl_multi_remove_handle($mh, $ch1);
curl_multi_remove_handle($mh, $ch2);
curl_multi_close($mh);
Изменить это поведение нельзя - это основа архитектуры.
Да я и не понимаю, зачем оно вам нужно. Разбейте большой UPDATE на много маленьких, будет много небольших транзакций, результаты которых вы сможете увидеть.