select * from t;
+----+------+
| id | name |
+----+------+
| 1 | a |
| 2 | b |
| 3 | c |
| 4 | d |
| 5 | e |
| 6 | f |
+----+------+
şimdi bir kimliği listesi var bu veriler, bu tabloda mevcut almayan almak istiyorum var, istediğim etkidir Bu
select non_exist(id) from t where id in (1,2,5,7,10)
7
10
gibi yani mysql
bu gereksinimi destek verebilecek bazı kullanışlı fonksiyon varsa?
Şimdi yolumu MySQL öyle bir işlev yoktur
cat all_id
1
2
5
7
10
cat all_id | tr '\n' ','|awk '{gsub(/,$/,"");print "mysql -uroot -p123456 test -e '\''select id from t where id in ("$0");'\''"}'|bash>exist_id
cat exist_id
id
1
2
5
comm <(sort all_id) <(sort exist_id) -2 -3
10
7
Olası kopyalar [MySQL tablosundan kimlikleri eksik olsun] (http://stackoverflow.com/questions/12325132/mysql -get-eksik-ids-tablo) – ogres
Neden böyle bir şey gerekli olurdu? Senin sorunun ne? – Mjh
@Mjh örn. Market departmanı çalışanı size birçok müşteri cep telefonuna sahip olan bir excel dosyası verir ve bu müşterilere bir çeşit kupon gönderdiğinizi söyler, bu yüzden kullanıcı tablosunda hangi cep telefonunun bulunmadığını filtrelemek isterim. yanlış numara. – zhuguowei