2009-09-11 45 views
7

Tôi đang sử dụng MySQL, tôi có một bảng có 9 cột. Một trong số đó là khóa chính.Chọn một hàng trong MySQL

Làm cách nào để chọn một hàng, bằng khóa chính hoặc cột 8 hoặc 4?

+0

chọn một hàng duy nhất: 'chọn * từ giới hạn khả dụng của bạn 1;' –

Trả lời

18

Nếu tôi hiểu câu hỏi của bạn một cách chính xác:

SELECT * FROM tbl WHERE id = 123 OR colname4 = 'x' OR colname8 = 'y' LIMIT 1 

Các 'LIMIT' keyword đảm bảo chỉ có một hàng trả lại.

+0

Điều này sẽ giúp tôi tiếp tục đi xuống đường, cảm ơn bạn! – aggitan

+0

Tuy nhiên, "MySQL không hỗ trợ LIMIT trong truy vấn phụ cho các toán tử truy vấn con nhất định". Vui lòng xem [Hạn chế về Truy vấn con] (https://dev.mysql.com/doc/refman/5.5/en/subquery-restrictions.html). –

3
select * 
from MyTable 
where MyPrimaryKey = 123 
+0

Công trình này, cảm ơn bạn. – aggitan

0

Cột trong SQL không có 'thứ tự' được xác định. Hệ thống cơ sở dữ liệu thường theo dõi một đơn đặt hàng cho mục đích hiển thị, nhưng nó không có ý nghĩa để yêu cầu một cơ sở dữ liệu để chọn một cột theo số. Bạn cần phải biết tên của cột để truy vấn nội dung của cột đó.

Điều tương tự cũng xảy ra với khóa chính (trong đó, tình cờ, có thể không chỉ là một cột đơn lẻ). Bạn phải biết cột đó là gì và cột đó được đặt tên là gì, để thực thi truy vấn.

Nếu bạn không biết những điều này, hoặc cần phải tìm chúng ra tự động, sau đó

DESCRIBE tablename; 

sẽ cho bạn biết tên của mỗi cột, và cho dù đó là một phần của khóa chính hay không. Nó sẽ trả về một bảng mà bạn có thể đọc, giống như bất kỳ kết quả nào khác.

Các vấn đề liên quan