![]() |
Не могу объяснить следующий корректный запрос:
Код:
SELECT * FROM `users` WHERE login = 'blablabla' + '' |
Цитата:
|
Цитата:
Код:
SELECT * FROM `users` WHERE login = 0зы. плохо искал кстати, http://dev.mysql.com/doc/refman/5.7/...functions.html |
Цитата:
Код:
SELECT * FROM `users` WHERE login = 'blablabla' '' |
Цитата:
Но, как понять login = 0 учитывая, что login имя пользователя, т.е. строчный тип И почему запрос Код:
SELECT * FROM `users` WHERE login = 0Код:
SELECT * FROM `users` WHERE login = 1 |
Цитата:
|
Цитата:
Код:
SELECT * FROM `users` WHERE login = 'blablabla' + ''Код:
SELECT * FROM `users` WHERE login = 'blablabla' + 'bebebe'Код:
SELECT * FROM `users` WHERE login = 0Может это из-за того, что знак плюс является арифметическим оператором, значит все, что он складывает приводиться к числовому типу? |
Правая часть из за сложения конвертирует оба слагаемых в цифры. Затем левую часть тоже пытается привести к числовому типу. Странно что при этом выдает результат, а не ошибку.
Оракл на такой же запрос ругается на несоответсвие типов и это логично. |
Цитата:
|
На счет мускула не скажу, а вот в Оракле конкатенация строк это ||. Если + когда то и использовался для этого то в каких то совсем уж древнючих версиях.
|
| Время: 22:49 |