MariaDBで何かを見つけました。調査方法や修正方法がわかりません。 Windows上でのみ発生します。 Linux上のMariaDBとWindows上のMySQLはどちらもうまく機能します。おそらく/私は間違ったことを明らかにしていますが、私は興味をそそられています。サブクエリはWindowsでは動作しませんが、Linux上で動作します
詳細な情報を提供するために単純な表で再現しようとしましたが、実際には機能しないため、再現できません。確かに他の何かが行動に影響を与えているが、私は何がわからない。
問題:INを使用したサブクエリは機能しません。ここでは、全体的なクエリです:私のデータセットについて
Select table1.entityKey
from table1
where table1.Deleted = 0
and table1.MasterKey is null
and table1.entityTypeKey = 8
and table1.entityKey in
(select table2.entityKey
from table2
where table2.Flag <> 2
and (table2.IndexKey = 4 and MATCH (table2.xhtmltext) AGAINST ('gold')))
order by table1.entityKey DESC
、これは値2と3を返しますが、空のセットを与える必要があります。
だから私は、クエリを分割し、私はこれを見つける: サブクエリは正しく私は外部クエリにこれらの値を渡すと、それは正しく4を除外し
select table2.entityKey
from table2
where table2.Flag <> 2
and (table2.IndexKey = 4 and MATCH (table2.xhtmltext) AGAINST ('gold'))
、2、3、4を返し、私に正しい結果を与えます(2,3):
Select table1.entityKey
from table1
where table1.Deleted = 0
and table1.MasterKey is null
and table1.entityTypeKey = 8
and table1.entityKey in
(2,3,4)
order by table1.entityKey DESC
ここで間違っていますか?
おかげ
が、その組み合わせは、それはバグの兆候だしません。 https://jira.mariadb.orgで報告してください。 Windows/Linuxの違いについては、LinuxとWindowsで異なるMariaDBバージョンがあり、そのうちの1つにバグがあり、別のバージョンではバグがあります。各サーバの 'SELECT @@ version'の出力を比較してください。別の考えられる理由は、サーバーの設定が異なり、構成の1つがバグを明らかにするということです。バージョンが同じ場合は、 'SHOW VARIABLES'の出力を比較します(パスなどを無視します)。 – elenst
MyISAM? InnoDB?両方のシステムで同じですか? –
これは実際にバージョン10.2以降のバグであるようです。いくつかのテストを行い、問題を報告します。 – costateixeira