0

私はこのクエリを持っています:

update sales_flat_quote set customer_email = (concat(select substring(md5(rand()) from 1 for 20), '@example.com'));

このエラーが発生します。3SQL構文にエラーがあります。6行目のSQL1.sql61の''の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。サブ文字列selectの結果を静的な@example.com文字列と連結したいと思います。

クエリの何が問題になっていますか?

ありがとう!

4

2 に答える 2

2

select substring(md5(rand()) from 1 for 20文字列ではなく、結果セットを返します。

あなたが望むことをするための適切な方法はupdate sales_flat_quote set customer_email = (concat(substring(md5(rand()) from 1 for 20), '@example.com'));

于 2012-05-14T11:40:12.237 に答える
1

副選択を使用するには、括弧で囲む必要があります。

update sales_flat_quote set customer_email = concat(
        (select substring(md5(rand()) from 1 for 20)), 
        '@example.com');

この場合、副選択を使用する必要がないことに注意してくださいrand()。各行に対して呼び出されます。

于 2012-05-14T11:47:16.897 に答える