Почему это происходит потому, что результат substring
является неявным брошен как binary
(я не получил 38, возможно, из-за разную кодировку).
select count(1) from users;
| count(1) |
|----------|
| 85 |
Если я использую тот же метод, как вы:
select substring(count(1),1,1) from users;
| substring(count(1),1,1) |
|-------------------------|
| OA== |
такое же, как если бы я бросил результат в двоичном виде:
select cast(substring(count(1),1,1) as binary) from users;
| cast(substring(count(1),1,1) as binary) |
|-----------------------------------------|
| OA== |
Но если я бросаю результат, как полукокса, я получаю правильный результат:
select cast(substring(count(1),1,1) as char) from users;
| cast(substring(count(1),1,1) as char) |
|---------------------------------------|
| 8 |
такое же, если я st count (1) as char:
select substring(cast(count(1) as char),1,1) from users;
| substring(cast(count(1) as char),1,1) |
|---------------------------------------|
| 8 |
Согласно вашему запросу sql, это должно быть '8'. Выполняете ли вы этот запрос в своей программе через db connect или в некоторых инструментах mysql? – Acepcs
Я выполнил запросы с помощью опции phpMyAdmin SQL – cespon