вы можете попробовать что-то вроде
DROP TABLE IF EXISTS pictures;
CREATE TABLE pictures(picture_id INT(11), `dt` DATE, followers INT(11));
INSERT INTO pictures VALUES
(2,'2018-07-13',4553),
(2,'2018-07-13',4552),
(2,'2018-07-13',4557),
(2,'2018-07-13',4577),
(3,'2018-07-13',4355),
(3,'2018-07-13',4351),
(3,'2018-07-13',4353),
(3,'2018-07-13',4374);
Удалить запрос
DELETE P FROM pictures p
LEFT JOIN (
SELECT picture_id, dt, MAX(followers) AS fol
FROM pictures WHERE dt ='2018-07-13' GROUP BY picture_id
) AS main
ON main.dt = p.dt
WHERE main.picture_id = p.picture_id
AND main.fol <> p.followers;
Надеюсь, это решит вашу проблему.
Вы можете использовать это регулярное выражение:
^(?!\s)[a-zA-Z\d$#@ ]{1,5}(?<!\s)$
Подробности RegEx:
^
: Старт (?!\s)
: Отрицательный взгляд, не запускать пробел при запуске [a-zA-Z\d$#@ ]{1,5}
: разрешить длину этого символа от 1 до 5 (?<!\s)
: отрицательный вид сзади, не допускать пробела до конца $
: конец Вот шаблон, который должен соответствовать вашим двум требованиям:
^\S(?:.{0,3}\S)?$
Это говорит о том, что соответствует:
\S an initial non whitespace character
(
.{0,3} zero to three of any character (whitespace or non whitespace)
\S a mandatory ending whitespace character
)? the entire quantity optional