2016-11-23 11 views
0

を動作させるために、空の連結を作成する必要があります。動作していないMySQLの列の別名は、私がしなければ、それは

SELECT PEvent.publicID AS 'ID'... 

結果は、それが私を動作させるために「のpublicId」ではない「ID」として

として来ますする必要があります:

SELECT concat(PEvent.publicID, '') AS 'ID' 

なぜですか? Windows用

<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" 
maxActive="10" maxIdle="3" maxWait="1000" type="javax.sql.DataSource" 
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" 
maxActive="10" maxIdle="3" maxWait="1000" type="javax.sql.DataSource" 
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" 
maxActive="10" maxIdle="3" maxWait="1000" type="javax.sql.DataSource" 
<Resource auth="Container" driverClassName="com.mysql.jdbc.Driver" 
maxActive="10" maxIdle="3" maxWait="1000" type="javax.sql.DataSource" 

列の別名のような単純な何かが動作しないことが非常に悪いことだ...

+0

私のために働きます。どのようにそれをテストしていますか? – Barmar

+0

私はsqlfiddle.comでこの問題に気付きましたが、MySQLモニタを使用したり、PHPのようなプログラミング言語から使用したりしていませんでした。 – Barmar

+0

@Barmarとjdbcクエリ。 –

答えて

2

私はUbuntuのmysqlコマンドラインからこれを試験したとき、それは私のために正常に動作、およびMySQLのワークベンチ。私はそれがjdbcのものかもしれないと思って、検索しました。 MySQLはこれをバグとはみなしません。 BZにコメントから

http://bugs.mysql.com/bug.php?id=21596

これはJDBC準拠のために必要な変化です。実際の列名を返すには、RSMD.getColumnName()が必要です。エイリアスはRSMD.getColumnLabel()を介して返されます。

Connector/J 3.1より古い非対応の動作を使用する場合は、5.0夜間ビルドに存在する「useOldAliasMetadataBehavior」構成パラメータを使用し、それを「true」に設定します。

+0

エイリアスがカラム名と完全に等価でない場合、その目的は何ですか?すべてがばかげている。データをありがとう。 –

関連する問題