Такое вообще возможно реализовать запросами?
UPDATE
`dle_post`
SET
`date` = CONCAT(
LEFT(SUBSTR(`xfields`, LOCATE('||year|', `xfields`)+7), 4),
RIGHT(`date`, 15)
)
WHERE
LOCATE('||year|', `xfields`) > 0
дату не нужно вычислять, а просто указать свою - для всех новостей у которых стоит год 1997.
Совпадение текста с поиском, не правильно выразился.
Если он находит такой год (значение, в данном примере 1997) в колонке xfields то меняем на произвольную дату (указанную вручную) в колонке date
UPDATE
`dle_post`
SET
`date` = CONCAT(
'2014-03-24', # подставьте тут нужную дату
RIGHT(`date`, 9)
)
WHERE xfields LIKE '%year|1997%' # подставьте тут желаемый год
когда я делаю запрос с помощью LIKE , я получаю выборку большего кол-ва , чем делаю тоже самое через regexp, как так получается?
И как сделать запрос, через regexp , что бы выводил большие кол-во?
REGEXP '.*врач.*'
правильно ли сделан запрос?
И я так понял это 100% защита от sql инъекций?
$search_platforms = cot_import('splatform', 'G', 'ARR');
$where['splatform'] = [];
foreach ($search_platforms as $search_platform) {
$where['splatform'][] = "FIND_IN_SET('{$search_platform}', `game_platform`) > 0";
}
$where['splatform'] = "(" . implode(" OR ", $where['splatform']) . ")";
SELECT
inner.*
FROM (
SELECT * FROM `user` WHERE `user`.`rank_golos`>=22.1
UNION
SELECT * FROM `user` WHERE `user`.`rank_golos` <22.1 AND `user`.`rank_golos`>0
) AS inner
ORDER BY
`inner`.rank_yearnub DESC,
`inner`.rank_golos DESC
SELECT
`user` . *
FROM
`user`
WHERE
`user`.`rank_golos`>=22.1
OR
(`user`.`rank_golos`<22.1 AND `user`.`rank_golos`>0)
ORDER BY
`user`.rank_yearnub DESC,
`user`.rank_golos DESC
SELECT *
FROM `table`
WHERE 1
AND FIND_IN_SET('1', `field`) > 0
AND FIND_IN_SET('2', `field`) = 0
SELECT *
FROM `table`
WHERE (
(`field` LIKE '1,%' OR `field` LIKE '%,1,%' OR `field` LIKE '%,1') AND
(`field` NOT LIKE '2,%' AND `field` NOT LIKE '%,2,%' AND `field` NOT LIKE '%,2')
)
SELECT
SUM(CASE WHEN `last_sign_in_at` <= DATE_SUB(NOW(), INTERVAL 3 DAY) THEN 1 ELSE 0 END) AS '> 3 days',
SUM(CASE WHEN `last_sign_in_at` <= DATE_SUB(NOW(), INTERVAL 90 MINUTE) AND `last_sign_in_at` >= DATE_SUB(NOW(), INTERVAL 3 DAY) THEN 1 ELSE 0 END) AS '> 90 min',
SUM(CASE WHEN `last_sign_in_at` <= DATE_SUB(NOW(), INTERVAL 30 MINUTE) AND `last_sign_in_at` >= DATE_SUB(NOW(), INTERVAL 90 MINUTE) THEN 1 ELSE 0 END) AS '> 30 min'
FROM `table`
SELECT
`user`.*,
`project`.`name` as 'project_name'
FROM
`user`
JOIN `project` ON (`project`.`id`=`user`.`project_id`)
WHERE
`user_id`='1' -- здесь подставить правильный id
SELECT
`task`.*
FROM
`task`
WHERE
`project_id`='1' -- здесь подставить правильный project_id, полученный в предыдущем запросе.