0

必要な文字列を返す次のコードがあります

$sql = "
    SELECT `description` 
    FROM `auctions` 
    WHERE `description` REGEXP '[0-9]{10}'
";

ただし、このようなものに対して更新クエリを実行する必要があります

UPDATE `url` 
FROM `auctions_media`
WHERE `url` = "$sql" AND `auction_id` = SomeNumber

auction_idforテーブルがinテーブルとauctions一致するようにテーブルを一致させるにはどうすればよいですか??auction_idauctions_media

コードがすべての行を通過し、説明から文字列を返し、それを更新クエリに使用する必要があります

4

2 に答える 2

1

あなたが何を求めているのか完全にはわかりませんが、おそらくこれです:

UPDATE auctions_media JOIN auctions USING (auction_id)
SET    auctions_media.url = auctions.description
WHERE  auctions.description REGEXP '[0-9]{10}'

またはこれ:

UPDATE auctions
  JOIN auctions_media
    ON auctions_media.auction_id = auctions.auction_id
   AND auctions_media.url        = auctions.description
SET    ...
WHERE  auctions.description REGEXP '[0-9]{10}'
于 2013-01-20T09:11:26.143 に答える
0

MySQL サブクエリを使用できます。そして、あなたのUPDATE 構文は間違っています。

私があなたを正しく理解していれば、次のようなものが必要です (サブクエリの使用例):

UPDATE `auctions_media` 
SET url = 'to something you fetched before'
WHERE `auction_id` = (SELECT id
                      FROM `auctions` 
                      WHERE `some condition you need`)
于 2013-01-20T08:41:56.547 に答える