Announcement

Collapse
No announcement yet.

[SQL] Hỏi về hàm update trong sql

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • [SQL] Hỏi về hàm update trong sql

    Mình có talbe SANPPHAM có 2 cột

    MaSP varchar(5)
    Image varchar(40)

    Mình muốn update giá trị của Image = MaSP + ".jpg"

    Mình viết hàm Update như thế này:
    Update SANPHAM Set Image= MaSP + ".jpg"
    Nhưng cột Image lại trả về giá trị 0.

    Bạn nào sửa giúp mình với

  • #2
    Phải SELECT ra giá trị MaSP rồi mới thực hiện toán tử chứ nhỉ? Anh SELECT thử xem.

    Câu lệnh UPDATE của anh không kèm theo điều kiện sao?

    Comment


    • #3
      Originally posted by 10520273 View Post
      Mình có talbe SANPPHAM có 2 cột

      MaSP varchar(5)
      Image varchar(40)

      Mình muốn update giá trị của Image = MaSP + ".jpg"

      Mình viết hàm Update như thế này:
      Update SANPHAM Set Image= MaSP + ".jpg"
      Nhưng cột Image lại trả về giá trị 0.

      Bạn nào sửa giúp mình với
      Giả sử bảng sanpham có 20 dòng, set Image= MaSP + ".jpg" thì MaSP nó sẽ lấy của dòng nào? Hỏi người còn không biết, huống chi là phần mềm?

      Comment


      • #4
        Originally posted by 07520182 View Post
        Giả sử bảng sanpham có 20 dòng, set Image= MaSP + ".jpg" thì MaSP nó sẽ lấy của dòng nào? Hỏi người còn không biết, huống chi là phần mềm?
        Theo như cách anh bên trên hỏi và làm thì em nghĩ MASP sẽ lấy của tất cả các dòng, update (cập nhật) lại bằng cách cộng thêm chuỗi '.jpg' rồi gán vào cho Image, mỗi giá trị của MASP thì sẽ tạo nên 1 giá trị Image tương ứng trong mỗi dòng. Theo anh nếu muốn update 20 dòng trong bảng SANPHAM (bảng có 20 dòng) theo yêu cầu bên trên thì phải làm như thế nào?
        Last edited by tara95; 04-11-2014, 19:52.
        I don't know the secret to success, but the secret to failure is trying to please everyone

        Comment


        • #5
          Originally posted by 11520348 View Post
          Phải SELECT ra giá trị MaSP rồi mới thực hiện toán tử chứ nhỉ? Anh SELECT thử xem.
          Câu lệnh UPDATE của anh không kèm theo điều kiện sao?
          -Đâu nhất thiết phải SELECT ra MASP rồi mới thực hiện được anh, giả sử em muốn UPDATE GIATIEN lên gấp đôi của tất cả sản phẩm trong bảng SANPHAM thì anh sẽ làm như thế nào?
          -UPDATE có thể có hoặc không có điều kiện. Đối với bài này không cần điều kiện vì đề bài cần UPDATE hết cột Image bảng SANPHAM.
          Last edited by tara95; 04-11-2014, 19:53.
          I don't know the secret to success, but the secret to failure is trying to please everyone

          Comment


          • #6
            Originally posted by 10520273 View Post
            Mình có talbe SANPPHAM có 2 cột

            MaSP varchar(5)
            Image varchar(40)

            Mình muốn update giá trị của Image = MaSP + ".jpg"

            Mình viết hàm Update như thế này:
            Update SANPHAM Set Image= MaSP + ".jpg"
            Nhưng cột Image lại trả về giá trị 0.

            Bạn nào sửa giúp mình với
            Anh làm đúng với định nghĩa:
            Code:
            UPDATE table_name
            SET column1 = value1, column2 = value2...., columnN = valueN
            WHERE [condition];
            Em vừa thử vài bảng dạng thế này, em thấy chạy tốt, vẫn ra đáp án đúng. Anh thử sửa ".jpg" thành '.jpg' thử xem, em chạy với ".jpg" báo lỗi: "Invalid column name '.jpg'.".
            P/s: Nếu sửa không được thì anh up file sql lên đây.
            I don't know the secret to success, but the secret to failure is trying to please everyone

            Comment


            • #7
              Originally posted by tara95 View Post
              Anh làm đúng với định nghĩa:
              Code:
              UPDATE table_name
              SET column1 = value1, column2 = value2...., columnN = valueN
              WHERE [condition];
              Nếu hàm update chỉ có MaSP mà k + thêm ".jpg" thì vẫn chạy tốt. Nhưng thêm + ".jpg" thì lại trả về 0.
              Mình vẫn làm đúng theo cú pháp đó thôi. Đã thử sửa ".jpg" rồi vẫn k được. Mình lại nghĩ nó có thể là do kiểu dữ liệu.
              Last edited by 10520273; 04-11-2014, 20:20.

              Comment


              • #8
                Trong mysql để cộng chuỗi không phải là dùng + như trong sql server đâu bạn.
                Update sanpham set image=concat(masp,'.jpg')

                Comment


                • #9
                  Originally posted by tara95 View Post
                  Theo như cách anh bên trên hỏi và làm thì em nghĩ MASP sẽ lấy của tất cả các dòng, update (cập nhật) lại bằng cách cộng thêm chuỗi '.jpg' rồi gán vào cho Image, mỗi giá trị của MASP thì sẽ tạo nên 1 giá trị Image tương ứng trong mỗi dòng. Theo anh nếu muốn update 20 dòng trong bảng SANPHAM (bảng có 20 dòng) theo yêu cầu bên trên thì phải làm như thế nào?
                  :aboom: àh đúng rồi anh nhầm. Nếu update thế thì sẽ lấy dữ liệu của row đó updat vào. Để gộp string thì sql dùng concat chứ dùng + thì sẽ biến thành cộng số rồi. Ra 0 là chính xác chứ đâu có sai.

                  Comment


                  • #10
                    dùng concat được rồi. tks mấy bạn nhé

                    Comment


                    • #11
                      Originally posted by 10520273 View Post
                      dùng concat được rồi. tks mấy bạn nhé
                      Anh hỏi trong MySQL mà em cứ tưởng trong SQL Server:sad:.
                      I don't know the secret to success, but the secret to failure is trying to please everyone

                      Comment

                      LHQC

                      Collapse
                      Working...
                      X