Birçok kullanıcı içeren tek bir tablom var. Bu tabloda her bir kişi için ayrı ayrı artış yapmak istediğim user_id (INT) adında bir sütuna sahibim. user_id 1MySql INSERT MAX ile sorun() + 1
azından ben hazırladım basit bir örnek başlatmak GEREKİR:
Showing all names
+--------------+-----------------------+
| user_id | name |
+--------------+-----------------------+
| 1 | Bob |
| 1 | Marry |
| 2 | Bob |
| 1 | John |
| 3 | Bob |
| 2 | Marry |
+--------------+-----------------------+
Showing only where name = Bob
+--------------+-----------------------+
| user_id | name |
+--------------+-----------------------+
| 1 | Bob |
| 2 | Bob |
| 3 | Bob |
+--------------+-----------------------+
aşağıdaki sorgu yapacak, ancak 'Bob' zaten tabloda varsa bu sadece ...
çalışacakINSERT INTO users(user_id, name) SELECT(SELECT MAX(user_id)+1 from users where
name='Bob'), 'Bob';
Bob yoksa (ilk giriş) user_id 0 (sıfır) olarak ayarlanır. Sorun bu. 1 0'dan başlamak için user_id öğesine ihtiyacım var
Bu işe yarar! TEŞEKKÜR EDERİM! – Chad
Evet, sorgu çalışır, ancak lütfen ikinci bölümü göz ardı etmeyin . :) Ya da görmezden gelmeye karar verirseniz, en azından bir isim (user_id) 'te benzersiz bir indeks yaratın, böylece bir çoğaltmayı üretecek sorgu başarısız olur. –
Tha Aslında bir sonraki sorum oldu, burada: http://stackoverflow.com/questions/1590648/mysql-innodb-locking-only-the-affected-rows – Chad