PDA

View Full Version : [MU] Bạn nào rành về SQL vào giúp mình vấn đề này nhé



lieuthunguyet
29-05-13, 12:50 PM
Mình muốn Update Character mà mình lấy điều kiện Where ở MEMB_INFO thì làm thế nào và có làm được điều này không.


VD: Update character
Set Resets = 0
where Resets > 0

và Update character
Set Resets = 0
where cái cột nằm trong MEMB_INFO thì làm cách nào.

010891
29-05-13, 01:19 PM
UPDATE Character
SET Resets = Resets+ 200
where name='Tên Nhân Vật'

nếu để là :

SET Resets = 200

thì tức là nhân vật sẽ thành 200 lần rs .. kể cả trước là 1000 lần cũng về 200 lần


nếu để là :

SET Resets = Resets+ 200

thì nhân vật sẽ giữ nguyên lần rs và + thêm 200

hiểu k bạn

lieuthunguyet
29-05-13, 03:21 PM
Mình hỏi điều kiện nằm ở MEMB_INFO bạn ah.
Cụ thể là cột TheHe

skriptank
29-05-13, 03:34 PM
Update character
Set Resets = 0
where (select thehe from MEMB_INFO where thehe = ?) = ? and id_account = id

? là thế hệ
id là id của account

lieuthunguyet
29-05-13, 03:51 PM
Rồi mình muốn dùng query Delete các Character và warehouse thì làm thế nào bạn ?

skriptank
29-05-13, 03:54 PM
warehouse là gì mình ko biết vì lâu rồi không dev MU nữa, nhưng nếu bạn muốn xóa toàn bộ char thì chạy lệnh

Delete from character

lieuthunguyet
29-05-13, 04:00 PM
Vậy muốn Set Reset ở TH2 = 0 thì :

Update character
Set Resets = 0
where (select thehe from MEMB_INFO where thehe = 2)

và Delete hết nv thì :

Delete from character
where (select thehe from MEMB_INFO where thehe = 2)

??

nghichtu91
29-05-13, 04:13 PM
Update character
Set Resets = 0
where (select thehe from MEMB_INFO where thehe = 2) = thiếu dk chổ này
và Delete hết nv thì :
Delete from character
where (select thehe from MEMB_INFO where thehe = 2) = thiếu dk chổ này

lieuthunguyet
29-05-13, 04:19 PM
Mới vừa test thử :

Delete from character
where (select thehe from MEMB_INFO where thehe = 2) = 2

Nó xoá sạch nhân vật cả 2 lẩn 1 :D.

skriptank
29-05-13, 04:36 PM
à, từ từ bạn, mình vừa mở lại DB của Mu, theo như mình biết thì chính xác câu lệnh update hay delete ràng buộc đúng của nó phải là thế này, nhưng đoạn này nó báo lỗi 1 chỗ, đó là sub querry không thể trả về nhiều hơn 1 giá, trị, các bạn vào đây cùng nghiên cứu xem

update dbo.Character set Resets = 0
where AccountID = (select distinct AccountID from Character, MEMB_INFO where Character.AccountID = MEMB_INFO.memb___id)
and (select distinct thehe from MEMB_INFO where MEMB_INFO.thehe = 1) = 1

P/S: nếu nghiên cứu ko ra đc vấn đề này thì mình có ngu kiến thế này, tạo 1 cái thế hệ link từ bên memberinfor qua character. thao tác update hay delete trên 1 table nó sẽ đơn giản hơn nhiều :D

lieuthunguyet
29-05-13, 04:44 PM
Cái tạo cột thehe mình cũng tính làm thử nhưng sợ nó không update theo memb_info.