1
ユニークな列url varchar(4)を持っていて、それを一意のランダムな文字列に更新したいが、重複した項目に問題がある。 このようなループを作成したいのですが、同じテーブルを2回ターゲティングすることに問題があります。存在するステートメントを使用してユニークな文字列でテーブルの列を更新
UPDATE IGNORE word SET url = (SELECT GROUP_CONCAT(SUBSTRING('1234567890qwertyuiopasdfghjklzxcvbnm' , 1+ FLOOR(RAND()*LENGTH('1234567890qwertyuiopasdfghjklzxcvbnm')) ,1) SEPARATOR '')
FROM (SELECT 1 UNION SELECT 2 UNION SELECT 3 UNION SELECT 4) AS dummy_tbl)
WHERE EXISTS (SELECT url FROM word WHERE url IS NULL);
単一のクエリで自分の列を埋める最も良い方法は何ですか?
私は追加する前に句をEXISTSことをしようとしたが、それはありませんそれらの一部だけをすべて更新し、その重複したエントリがNULLのままになったとき。だから私は基本的にその存在とループを追加したい。 (私は250K行とalter table urlカラムを持っています) – MarksW
同じ文字x3サイズのサブ文字列と長さを拡張して、それを単一のクエリで更新しますが、将来のプロジェクトで正しいループコードを見たいと思っています。 – MarksW
'UPDATE'文をループすることはできません。これを行うためのスクリプトやストアドプロシージャを記述する必要があります。 –