Hướng dẫn mysql update multiple tables - mysql cập nhật nhiều bảng

Tôi có 2 bảng trong DB của tôi mà mỗi người có một cột có tên là Catergory.

Nội dung chính ShowShow

  • Bạn có thể cập nhật trên nhiều bảng trong MySQL không?
  • Làm cách nào để cập nhật nhiều bản ghi trong MySQL?
  • Làm thế nào để bạn sử dụng nhiều bảng trong truy vấn cập nhật?
  • Nhiều bảng có thể cập nhật không?

Categories Table -
id | category_name
1  : basic
2  : midlevel
3  : highlevel
4  : profesional

Product Table - 
id | product | category_name
1  : adsl 1G : basic
2  : adls 2G : midlevel
3  : adsl 3G : highlevel
4  : adsl 4G : profesional

Khi tôi cập nhật * category_name * trong bảng

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
5, tôi cũng muốn thay đổi nó trong bảng
     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
6, nhưng tôi không chắc chắn về cách thực hiện việc này.

Tôi không thể tìm thấy và trả lời vì tôi không biết làm thế nào để diễn đạt chính xác.

Bất kỳ trợ giúp sẽ được đánh giá cao.

Cập nhật của tôi.php trông như thế nào bây giờ:

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");

Trông như thế nào: ???

{mã ở đây}

Lưu ý: "Đã sửa - Tôi quên gửi giá trị cũ của mình đến tệp Save.php để $ id không bao giờ biết những gì sẽ cập nhật".

Hỏi ngày 13 tháng 4 năm 2012 lúc 12:18Apr 13, 2012 at 12:18Apr 13, 2012 at 12:18

Hướng dẫn mysql update multiple tables - mysql cập nhật nhiều bảng

DrmzindecdrmzindecDrmzindecDrmzindec

8042 Huy hiệu vàng15 Huy hiệu bạc28 Huy hiệu đồng2 gold badges15 silver badges28 bronze badges2 gold badges15 silver badges28 bronze badges

10

Bạn chỉ có thể chạy hai truy vấn thay đổi cả hai tên:

<?php
mysql_query("UPDATE categories SET category_name='" . $catname . "' WHERE category_name='basic'");
mysql_query("UPDATE product SET category_name='" . $catname . "' WHERE category_name='basic'");
?>

Nếu bạn muốn thực hiện nó trong một chuỗi, bạn có thể thực hiện điều này với nhiều truy vấn, truy vấn được tham gia hoặc quy trình được lưu trữ.

Nhiều truy vấn trong một chuỗi:

<?php
    mysql_query("
        mySqlQuery(UPDATE categories SET category_name='" . $catname . "' WHERE category_name='basic';)
        mySqlQuery(UPDATE product SET category_name='" . $catname . "' WHERE category_name='basic';)
    ");
?>

Tham gia truy vấn:

<?php
mysql_query("
    UPDATE `product`,`categories`
    SET `product`.`category_name` = '" . $catname . "',
        `categories`.`category_name` = '" . $catname . "'
    WHERE `items`.`id` = '" . $catname . "'
");
?>

Nếu không có công việc nào ở trên, tôi khuyên bạn nên thay đổi bảng để không có tên phù hợp mà là ID phù hợp.

Bạn sẽ nhận được như sau:

Categories Table -
id | category_name
1  : basic
2  : midlevel
3  : highlevel
4  : profesional

Product Table - 
id | category_ID | product
1  : 1           : adsl 1G
2  : 2           : adls 2G
3  : 3           : adsl 3G
4  : 3           : adsl 4G

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 12:23Apr 13, 2012 at 12:23Apr 13, 2012 at 12:23

7

UPDATE Categories t1 
JOIN Product t2 ON (t1.category_name  = t2.category_name ) 
SET t1.category_name = ?
    t1.category_name = ?
WHERE t1.id = ?

Nhưng bạn đang cảm thấy rằng mô hình dữ liệu của bạn là xấu xí. Có thể tốt hơn để khử chuẩn hóa ...

Có bảng sản phẩm tham khảo bảng danh mục:

Product Table - 
id | product | category_ID

Categories Table -
id | category_name

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 12:23Apr 13, 2012 at 12:23Apr 13, 2012 at 12:23

Nhưng bạn đang cảm thấy rằng mô hình dữ liệu của bạn là xấu xí. Có thể tốt hơn để khử chuẩn hóa ...Konerak

Có bảng sản phẩm tham khảo bảng danh mục:12 gold badges96 silver badges117 bronze badges

0

Nhưng bạn đang cảm thấy rằng mô hình dữ liệu của bạn là xấu xí. Có thể tốt hơn để khử chuẩn hóa ...Konerak

Có bảng sản phẩm tham khảo bảng danh mục:12 gold badges96 silver badges117 bronze badges

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
0

Konerakkonerak

38.7K12 Huy hiệu vàng96 Huy hiệu bạc117 Huy hiệu đồng

Tôi khuyên bạn nên liên kết bảng sản phẩm của mình với bảng danh mục bằng cách sử dụng trường 'ID' của bảng danh mục. Bằng cách này, bạn sẽ được liên kết với cùng một danh mục và có thể thay đổi tên danh mục mà không sợ phá vỡ bất cứ điều gì khác, vì bạn vẫn sẽ liên kết với cùng một ID danh mục.Apr 13, 2012 at 12:24

Xem xét những điều sau:Frank

Cách bạn hiện đang làm, nó dường như rất khó duy trì, vì bạn có thể cần thêm một cột khác trong tương lai sử dụng một danh mục theo một cách nào đó và phải tiếp tục thay đổi cột 'Category_name' cho tất cả các bảng đó có thể sẽ Kết thúc rất lộn xộn. Bằng cách liên kết với ID, bạn có thể thực hiện bất kỳ thay đổi nào bạn thích trong bảng danh mục mà không lo lắng rằng bạn sẽ mất liên kết đến bất kỳ bảng nào khác (đó là những gì sẽ xảy ra với các bảng hiện tại).Apr 13, 2012 at 12:245 silver badges15 bronze badges

EDIT: Bạn có thể nhận được bất kỳ thông tin nào về các danh mục bằng cách sử dụng các kết nối như tham gia bên trong. Đây sẽ là một cách tiếp cận tốt hơn, tôi nghĩ. Ngoài ra, hãy xem xét thêm mối quan hệ giữa cột 'Category_id' trong bảng Sản phẩm với cột 'ID' trong bảng danh mục. Điều này sẽ đảm bảo rằng một danh mục sẽ không bị xóa trong khi vẫn còn các sản phẩm được liên kết với nó.Frank

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
1

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 12:245 silver badges15 bronze badges

FrankfrankApr 13, 2012 at 12:25

6645 Huy hiệu bạc15 Huy hiệu ĐồngPrabhuram

Khi nào bạn có một mối quan hệ như các sản phẩm và danh mục mà bạn đã đề cập, tốt hơn hết là có cấu trúc như sau:Apr 13, 2012 at 12:259 silver badges15 bronze badges

Vì vậy, bất cứ khi nào bạn cần hiển thị tên danh mục cho một sản phẩm, bạn có thể làm điều đó bằng cách sử dụng tham gia. Vì vậy, thay đổi này sẽ cho phép bạn giải quyết vấn đề của bạn.Prabhuram

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 12:259 silver badges15 bronze badges

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
1

Bohhuramprabhuram

1.2889 huy hiệu bạc15 huy hiệu đồng

Tôi không biết tại sao bạn có

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
1

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
7 trong cả hai bảng, nó dường như vô nghĩa theo như tôi thấy.Apr 13, 2012 at 12:26

Lý tưởng nhất là cấu trúc bảng của bạn nên như thế này:Nick

Điều này cho phép bạn thay đổi tên của danh mục trong bảng danh mục mà không cần thay đổi bất cứ điều gì trong bảng sản phẩm.Apr 13, 2012 at 12:262 gold badges29 silver badges47 bronze badges

2

Tất cả những gì bạn cần làm là tham gia 2 bảng trong truy vấn chọn của bạn, ví dụ:Nick

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
2

http://php.net/manual/en/mysqli.multi-query.php

Đã trả lời ngày 13 tháng 4 năm 2012 lúc 12:262 gold badges29 silver badges47 bronze badgesMar 2, 2016 at 9:22

1

Biệt danh

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
3

6.2782 Huy hiệu vàng29 Huy hiệu bạc47 Huy hiệu đồngMar 2, 2016 at 9:22May 4, 2015 at 12:58

1

Hãy thử điều này hy vọng nó sẽ giúp

     db_update("UPDATE category SET 
    `category_name` = '".$_POST['category_name']."'
     WHERE category_id = '".$id."'");
4

Đã trả lời ngày 4 tháng 5 năm 2015 lúc 12:58Apr 29, 2020 at 10:31Apr 29, 2020 at 10:31

Đơn giản sử dụng mã bên dưới, hy vọng điều này phù hợp với bạn.flochristosflochristos

Đã trả lời ngày 29 tháng 4 năm 2020 lúc 10:313 silver badges13 bronze badges3 silver badges13 bronze badges

2

Bạn có thể cập nhật trên nhiều bảng trong MySQL không?

Trong MySQL, chúng ta có thể cập nhật nhiều bảng trong một truy vấn cập nhật. Trong truy vấn bên dưới, cả hai bảng 'Order' và 'order_detail' đều được cập nhật cùng một lúc.we can update the multiple tables in a single UPDATE query. In the below query, both 'order' and 'order_detail' tables are updated at once.we can update the multiple tables in a single UPDATE query. In the below query, both 'order' and 'order_detail' tables are updated at once.

Làm cách nào để cập nhật nhiều bản ghi trong MySQL?

Có một vài cách để làm điều đó.Chèn vào các giá trị của học sinh (ID, SCORE1, SCORE2) (1, 5, 8), (2, 10, 8), (3, 8, 3), (4, 10, 7) trên bản cập nhật khóa trùng lặp điểm 1 = giá trị (giá trị (điểm1), điểm2 = giá trị (điểm2);INSERT INTO students (id, score1, score2) VALUES (1, 5, 8), (2, 10, 8), (3, 8, 3), (4, 10, 7) ON DUPLICATE KEY UPDATE score1 = VALUES(score1), score2 = VALUES(score2);INSERT INTO students (id, score1, score2) VALUES (1, 5, 8), (2, 10, 8), (3, 8, 3), (4, 10, 7) ON DUPLICATE KEY UPDATE score1 = VALUES(score1), score2 = VALUES(score2);

Làm thế nào để bạn sử dụng nhiều bảng trong truy vấn cập nhật?

Sử dụng đối tượng bảng của SQLalchemy, có thể được chỉ định nhiều hơn một bảng trong phương thức mệnh đề Update ().PostgreSQL và Microsoft SQL Server hỗ trợ các câu lệnh cập nhật đề cập đến nhiều bảng.Điều này thực hiện cập nhật trên mạng từ cú pháp của nhóm, nơi cập nhật một bảng tại một thời điểm.. The PostgreSQL and Microsoft SQL Server support UPDATE statements that refer to multiple tables. This implements “UPDATE FROM” syntax, which updates one table at a time.. The PostgreSQL and Microsoft SQL Server support UPDATE statements that refer to multiple tables. This implements “UPDATE FROM” syntax, which updates one table at a time.

Nhiều bảng có thể cập nhật không?

1 câu trả lời.Không thể cập nhật nhiều bảng trong một câu lệnh, tuy nhiên, bạn có thể sử dụng giao dịch để đảm bảo rằng hai câu lệnh cập nhật phải được xử lý nguyên tử.Bạn cũng có thể bó chúng để tránh một chuyến đi khứ hồi như thế này.và t1.id = '011008';It's not possible to update multiple tables in one statement, however, you can use the transaction to make sure that two UPDATE statements must be treated atomically. You can also batch them to avoid a round trip like this. and T1.id = '011008';It's not possible to update multiple tables in one statement, however, you can use the transaction to make sure that two UPDATE statements must be treated atomically. You can also batch them to avoid a round trip like this. and T1.id = '011008';