テーブルの行を数え、その結果を部分文字列にする必要があります。私は必要なものを得るために、私はこれを試してみました:count(1)エラーのMySQLサブストリング
SELECT substring(count(1),1,1) FROM users
次のクエリは、85
を返します。
SELECT count(1) FROM users
期待値が8
あるときに最初のクエリが38
を返します。なぜこうなった?それが起こっているのはなぜ
テーブルの行を数え、その結果を部分文字列にする必要があります。私は必要なものを得るために、私はこれを試してみました:count(1)エラーのMySQLサブストリング
SELECT substring(count(1),1,1) FROM users
次のクエリは、85
を返します。
SELECT count(1) FROM users
期待値が8
あるときに最初のクエリが38
を返します。なぜこうなった?それが起こっているのはなぜ
は
SELECT substring(cast(count(1) as char), 1, 1) FROM users
であるべき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== |
しかし、私はcharとして結果をキャストした場合、私が手正しい結果:
select cast(substring(count(1),1,1) as char) from users;
| cast(substring(count(1),1,1) as char) |
|---------------------------------------|
| 8 |
stカウント(1)として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