Hiển thị kết quả từ 1 đến 2 / 2
  1. #1
    Tham gia
    28-10-2007
    Bài viết
    177
    Like
    0
    Thanked 1 Time in 1 Post

    Câu lệnh SQL cho truy vấn sửa dữ liệu (validator) ???

    khi thực hiện sửa 1 record trong dữ liệu (ví dụ đơn giản là table Categogy gồm 2 field: id cat_name)
    Chẳng hạn ta muốn sửa tên cat_name và điều kiện validator là :
    + cat_name được sửa ko trùng với các cat_name khác trong dữ liệu
    + cat_name được sửa có thể trùng với chính nó.

    ví dụ: ta có 1 record là 5 cat_name: a,b,c,d,e
    khi ta sửa cat_name thứ 2 là b thì:
    b ko được trùng với a,c,d,e
    b vẫn có thể được giữ nguyên (là chính nó)

    Vậy câu lệnh SQL thế nào để thỏa điều kiện validator trên ạ ???
    Quote Quote

  2. #2
    Tham gia
    01-01-2008
    Location
    Thiên đường hạnh phúc
    Bài viết
    1,299
    Like
    9
    Thanked 127 Times in 67 Posts
    Có 2 cách (theo tôi):
    1) Đặt Unique cho cột cat_name
    2) Thử với câu query (MySQL):
    Code:
    UPDATE Category AS C1,
    (
    SELECT COUNT(*) AS ROW
    FROM Category
    WHERE id <> id_đang_update AND cat_name='Giá trị cần thay'
    ) AS C2
    SET C1.cat_name = 'Giá trị cần thay' WHERE C1.id = id_đang_update AND C2.ROW = 0
    Không biết có cách nào hay hơn không?
    Được sửa bởi bachnga lúc 15:49 ngày 26-04-2011 Reason: Lúc đầu không chính xác

Bookmarks

Quy định

  • Bạn không thể tạo chủ đề mới
  • Bạn không thể trả lời bài viết
  • Bạn không thể gửi file đính kèm
  • Bạn không thể sửa bài viết của mình
  •