Rumah > Soal Jawab > teks badan
Saya sedang mengusahakan data perumahan dengan berbilang lajur. Semasa proses pembersihan, saya perhatikan bahawa terdapat beberapa nilai Null dalam lajur "PropertyAddress", dan saya ingin mengesahkan sama ada nilai Null ini boleh dipadankan dengan ParcelID. Oleh itu, saya menulis pertanyaan berikut untuk mengesahkan pernyataan sebelumnya dan memaparkan keputusan di bawah pertanyaan.
SELECT a.ParcelID, a.PropertyAddress, b .ParcelID, b.PropertyAddress FROM nashville_housing a JOIN nashville_housing b on a.ParcelID = b.ParcelID AND a.UniqueID <> b.UniqueID WHERE a.PropertyAddress is null;
ID Pakej | Alamat atribut | ID Pakej | Alamat atribut |
---|---|---|---|
092 13 0 322.00 | kosong | 092 13 0 322.00 | 237 37TH AVE N, Nashville |
043 04 0 014.00 | kosong | 043 04 0 014.00 | 112 HILLER DR, walnut lama |
026 05 0 017.00 | kosong | 026 05 0 017.00 | 208 East Avenue, Goodlettville |
042 13 0 075.00 | kosong | 042 13 0 075.00 | 222 FOXBORO DR, Madison |
Selepas mengesahkan bahawa saya boleh menggunakan ParcelID untuk menukar nilai Null kepada PropertyAddress yang betul, saya menulis pertanyaan KEMASKINI:
UPDATE nashville_housing SET PropertyAddress = ( SELECT a.ParcelID, b.PropertyAddress, b .ParcelID, b.PropertyAddress FROM nashville_housing a JOIN nashville_housing b on a.ParcelID = b.ParcelID AND a.UniqueID <> b.UniqueID WHERE a.PropertyAddress is null);
Tetapi ralat berlaku "Kod Ralat: 1241. Operand harus mengandungi 1 lajur"
Jadi, saya menulis semula pertanyaan sebagai:
UPDATE a SET PropertyAddress = IFNULL(a.PropertyAddress,b.PropertyAddress) WHERE a.PropertyAddress is null;
Tetapi ralat "Kod Ralat: 1146. Jadual 'nasville_housing.a' tidak wujud"
Akhirnya, saya menulis:
UPDATE a SET PropertyAddress = IFNULL(a.PropertyAddress,b.PropertyAddress) in ( SELECT a.ParcelID, b.PropertyAddress, b .ParcelID, b.PropertyAddress FROM nashville_housing a JOIN nashville_housing b on a.ParcelID = b.ParcelID AND a.UniqueID <> b.UniqueID WHERE a.PropertyAddress is null);
Tetapi ralat "Kod Ralat: 1146. Jadual 'nasville_housing.a' tidak wujud"
Saya menghargai sebarang sokongan yang boleh diberikan oleh sesiapa sahaja kepada saya.
P粉6396675042024-01-11 11:00:51
Anda boleh menggunakan JOIN untuk operasi KEMASKINI: https://www.mysqltutorial.org/mysql-update-join/
UPDATE nashville_housing a LEFT JOIN nashville_housing b ON a.ParcelID = b.ParcelID AND a.UniqueID <> b.UniqueID SET a.PropertyAddress = b.PropertyAddress WHERE a.PropertyAddress IS NULL;