Size: a a a

2020 July 05

РR

Руслан Ruslan73... in MySQL
Да
источник

ЛХ

Лапки Х in MySQL
Спасибо большое
источник

ЛХ

Лапки Х in MySQL
но ошибка все равно та же. не видит b.id
источник

ЛХ

Лапки Х in MySQL
а, потому что регистр нужен верхний. все работает, спасибо
источник

РR

Руслан Ruslan73... in MySQL
Незачто, единственное различие UNION он удаляет дубли, могут быть повторы теоретически
источник

IZ

Ilia Zviagin in MySQL
Bendyrko
сортировать не по полю в таблице а по val из массива
Из какого ещё массива?
источник

ЛХ

Лапки Х in MySQL
Руслан Ruslan73
Незачто, единственное различие UNION он удаляет дубли, могут быть повторы теоретически
учту, но, в данной задаче, мне не надо удалять дубли)
источник

ОA

Олег Abicur in MySQL
Добрый день.Есть приложение которое работало на MySQL 5.6. (sql_mode = STRICT_TRANS_TABLES). На этой версии такое выражение выполнялось корректно:
update table set value = 10 where (value1 + value2 >= '1') or '1=1';
Однако на версии MySQL 5.7 (sql_mode = STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION) я получаю ошибку [22001][1292] Data truncation: Truncated incorrect INTEGER value: '1=1'
Запросы вида select * from table where id = 1 and '1!=1' / select * from table where id = 1 and '1=1' так же отрабатывают в этих версиях по разному.
В списке изменений версии 5.7 на первый взгляд не могу найти изменений которые бы описывали изменения в поведении MySQL для таких выражений. Может кто-то сможет подсказать куда копать и есть ли возможность заставить вести MySQL 5.7 схожим образом с MySQL 5.6 для таких выражений?
источник

МС

Михаил Семочкин... in MySQL
'1=1'
Но это реально некорректное выражение. Исправляйте запрос.
источник

ОA

Олег Abicur in MySQL
я понимаю что запрос выглядит не корректным (так его формирует приложение, а точнее старый аналог ORM), но в 5.6 это работало корректно, а в 5.7 такое приведение перестало работать. К сожалению не могу найти какой-то информации о том что поведение было изменено.
источник

B

Bendyrko in MySQL
Ilia Zviagin
Из какого ещё массива?
Пехапешный ассоциативный
источник

B

Bendyrko in MySQL
Или создать темп таблицу
источник

B

Bendyrko in MySQL
Она хоть в памяти будет ?
источник

МС

Михаил Семочкин... in MySQL
Олег Abicur
я понимаю что запрос выглядит не корректным (так его формирует приложение, а точнее старый аналог ORM), но в 5.6 это работало корректно, а в 5.7 такое приведение перестало работать. К сожалению не могу найти какой-то информации о том что поведение было изменено.
а [1292] - это точно error, а не warning? Может, у вас в варианте с 5.6 отображение ворнингов выключено?
источник

IZ

Ilia Zviagin in MySQL
Bendyrko
Пехапешный ассоциативный
Где он? Не вижу в твоём запросе никаких массивов
источник

IZ

Ilia Zviagin in MySQL
Олег Abicur
Добрый день.Есть приложение которое работало на MySQL 5.6. (sql_mode = STRICT_TRANS_TABLES). На этой версии такое выражение выполнялось корректно:
update table set value = 10 where (value1 + value2 >= '1') or '1=1';
Однако на версии MySQL 5.7 (sql_mode = STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION) я получаю ошибку [22001][1292] Data truncation: Truncated incorrect INTEGER value: '1=1'
Запросы вида select * from table where id = 1 and '1!=1' / select * from table where id = 1 and '1=1' так же отрабатывают в этих версиях по разному.
В списке изменений версии 5.7 на первый взгляд не могу найти изменений которые бы описывали изменения в поведении MySQL для таких выражений. Может кто-то сможет подсказать куда копать и есть ли возможность заставить вести MySQL 5.7 схожим образом с MySQL 5.6 для таких выражений?
Это у тебя мудак- клиентщик вклеил вместо куска кода литерал.

Должно быть


update table set value = 10 where (value1 + value2 >= 1) or 1=1
источник

IZ

Ilia Zviagin in MySQL
Олег Abicur
Добрый день.Есть приложение которое работало на MySQL 5.6. (sql_mode = STRICT_TRANS_TABLES). На этой версии такое выражение выполнялось корректно:
update table set value = 10 where (value1 + value2 >= '1') or '1=1';
Однако на версии MySQL 5.7 (sql_mode = STRICT_TRANS_TABLES, NO_ENGINE_SUBSTITUTION) я получаю ошибку [22001][1292] Data truncation: Truncated incorrect INTEGER value: '1=1'
Запросы вида select * from table where id = 1 and '1!=1' / select * from table where id = 1 and '1=1' так же отрабатывают в этих версиях по разному.
В списке изменений версии 5.7 на первый взгляд не могу найти изменений которые бы описывали изменения в поведении MySQL для таких выражений. Может кто-то сможет подсказать куда копать и есть ли возможность заставить вести MySQL 5.7 схожим образом с MySQL 5.6 для таких выражений?
Куда копать - никуда.
Это был бред какой-то а не запрос . Как можно в доке найти как СУБД должна была интерпретировать бред, что в нее посылали вместо запросов - я не представляю
источник

IZ

Ilia Zviagin in MySQL
Олег Abicur
я понимаю что запрос выглядит не корректным (так его формирует приложение, а точнее старый аналог ORM), но в 5.6 это работало корректно, а в 5.7 такое приведение перестало работать. К сожалению не могу найти какой-то информации о том что поведение было изменено.
Оно не могло работать корректно
источник

МС

Михаил Семочкин... in MySQL
Ilia Zviagin
Оно не могло работать корректно
источник

ОA

Олег Abicur in MySQL
Михаил Семочкин
а [1292] - это точно error, а не warning? Может, у вас в варианте с 5.6 отображение ворнингов выключено?
На сколько я понимаю все таки фатальная ошибка. Запрос абсолютно не хочет выполняться.
источник