PDA

View Full Version : Một chút khó khăn với lệnh UPDATE trong MySQL



anychanh
17-08-2006, 17:47
Hiện tại tui đang gặp 1 chút khó khăn với câu lệnh UPDATE,mong bà con ai biết thì xin chỉ giáo !!

Hiện tại tui có table khachhang có các cột ID_KH,ten_KH,SDT_KH và diachi_KH !! (tất cả khách đều là nữ)
trong cột ten_KH tui đã gõ sai tên lót của khá nhiều khách !! bây giờ tui muốn cập nhật lại tất cả khách hàng trong bảng bằng cách thay tất cả những chữ lót là "văn" thành chữ "thị" !!

Tui viết như sau:

UPDATE khachhang
SET ten_KH = "*thị*"
WHERE ten_KH = "*văn*"

Tui sử dụng dấu * để bỏ qua họ và tên,chỉ muốn tìm những ai có chữ lót là "văn" !! nhưng hình như MYSQL không hiểu thì phải ??!?! Ai biết cách khắc phục thì chỉ cho tui nha !!

(Nếu trong Access thì có thể dùng dấu * để thay thế cho 1 dãy kí tự và dấu ? thay thế cho 1 ký tự - tui áp dụng nó vào MySQL ko đựoc) !!

anychanh
20-08-2006, 16:41
TrỜi Ơi,sao HÔng Ai BiẾt HẾt DzỊ ??

paulsteigel
20-08-2006, 16:54
<Quote>
UPDATE khachhang
SET ten_KH = "*thị*"
WHERE ten_KH = "*văn*"

Tui sử dụng dấu * để bỏ qua họ và tên,chỉ muốn tìm những ai có chữ lót là "văn" !! nhưng hình như MYSQL không hiểu thì phải ??!?! Ai biết cách khắc phục thì chỉ cho tui nha !!
</Quote>
Ai bảo cậu là trong access nó cho làm thế - tớ chỉ hiểu là = "*văn*" thì tương tự với tìm thằng nào có tên *văn* thì cập nhật ....Người chưa chắc đã hiểu thì bảo Mysql hiểu thế quái nào được nhẩy!!!
Muốn làm kiểu của cậu thì Like thay cho dấu bằng mới có thể ổn, chưa biết những cái khác có đặng không.
Tiểu nhân biết có mỗi vậy - đại xá đại xá

tapsu
21-08-2006, 05:29
Chào,


Hiện tại tui đang gặp 1 chút khó khăn với câu lệnh UPDATE
....
Tui viết như sau:

UPDATE khachhang
SET ten_KH = "*thị*"
WHERE ten_KH = "*văn*"
...


Bạn hãy viết câu lệnh UPDATE như sau:

UPDATE khachhang
SET ten_KH = REPLACE(ten_KH, " văn ", " thị ")
WHERE ten_KH LIKE "*văn*";



(Nếu trong Access thì có thể dùng dấu * để thay thế cho 1 dãy kí tự và dấu ? thay thế cho 1 ký tự - tui áp dụng nó vào MySQL ko đựoc) !!

Những dấu này chỉ áp dụng cho việc tìm kiếm, vì vậy khi bạn làm
SET ten_KH="*thị*"
thì ten_KH sẽ là "*thị*" là đúng rồi. MySQL không làm sai điều bạn mong muốn đâu :-)))


bye

anychanh
22-08-2006, 15:52
Affected rows: 0 (Query took 0.0009 sec)

nó vẫn ko tìm ra được dòng nào hết !! có thể là nó không hiểu cái dòng: WHERE ten_KH LIKE "*văn*";
Cái này sao khó thế ko biết !!

chimtrum
22-08-2006, 16:17
thử cái này coi


UPDATE khachhang
SET ten_KH = REPLACE(ten_KH, " văn ", " thị ")
WHERE ten_KH LIKE "%văn%";

anychanh
22-08-2006, 18:21
REPLACE được rồi nhưng nó thay những dòng nào có chữ "văn" thành mỗi chữ "thị",bị xóa tên và họ rồi !! Có cách nào thay ngay cái chữ mà mình tìm không !!
VD như NGuyễn Văn A thay thành Nguyễn Thị A !!Dùng cách trên thì nó chỉ còn mỗi chữ Thị !!

chimtrum
23-08-2006, 01:40
REPLACE được rồi nhưng nó thay những dòng nào có chữ "văn" thành mỗi chữ "thị",bị xóa tên và họ rồi !! Có cách nào thay ngay cái chữ mà mình tìm không !!
VD như NGuyễn Văn A thay thành Nguyễn Thị A !!Dùng cách trên thì nó chỉ còn mỗi chữ Thị !!

Bạn ghi lại câu SQL của mình dùng lên đây.



UPDATE khachhang
SET ten_KH = REPLACE(ten_KH, " văn ", " thị ")
WHERE ten_KH LIKE "%văn%";


Câu này update những record mà tên có chứa chữ "văn" thành chính tên đó nhưng đổi chữ văn thành chữ "thị" thôi mà.Đâu có xóa tên, bạn lên google tìm cách dùng của hàm REPLACE trong MySQL sẽ thấy.

anychanh
23-08-2006, 07:30
THANKS ngàn lời !! tui đã run được rồi !!!
Thank bạn CHimTrum nhiều lắm,bạn cho tui xin cái Y!M nhe !!:x