2011-11-25 40 views
5

tôi dường như không thể tìm hoặc viết một sqlquery mà chọn giá trị mặc địnhLàm thế nào để chọn giá trị mặc định của một lĩnh vực

(và tôi không nghĩ rằng tôi có thể tạo ra nó trong phpmyadmin cho tôi để sao chép)

tôi đã cố gắng để chọn nó như thể nó là một kỷ lục nhưng không có kết quả ...

$defaultValue_find = mysql_query(
     "SELECT $group FROM grouptable WHERE $group='DEFAULT'") 
     or die("Query failed:".mysql_error()); 
$defaultValue_fetch = mysql_fetch_row($defaultValue_find); 
$defaultValue = $defaultValue_fetch[0]; 
echo $defaultValue; 

Trả lời

11
"SELECT $group FROM grouptable WHERE $group=DEFAULT($group) " 

Hoặc tôi nghĩ tốt hơn:

"SELECT DEFAULT($group) FROM grouptable LIMIT 1 " 

Update - chỉnh

Như @ Jeff Caron chỉ, ở trên sẽ chỉ làm việc nếu có ít nhất 1 dòng trong grouptable. Nếu bạn muốn kết quả ngay cả khi nhóm có thể không có hàng, bạn có thể sử dụng điều này:

"SELECT DEFAULT($group) 
FROM (SELECT 1) AS dummy 
    LEFT JOIN grouptable 
    ON True 
LIMIT 1 ;" 
+0

Tôi đã sử dụng thứ hai. Lời cảm ơn hoàn hảo. Một lưu ý là, tất nhiên, ('nhóm') nên đọc ($ nhóm) - chỉ liên quan đến cách tôi đóng khung câu hỏi - anyways, cảm ơn và chấp nhận! – Gamemorize

+0

@Adam: bạn nói đúng. Nếu '$ nhóm' là một cột, có. Tôi nghĩ trong giây lát rằng nó có thể là một giá trị của một cột, được chỉnh sửa ngay bây giờ. –

+3

Điều này sẽ chỉ hoạt động nếu có ít nhất 1 kết quả. Theo tôi biết, cách duy nhất để luôn nhận được giá trị mặc định của một cột là như sau: CHỌN COLUMN_DEFAULT FROM information_schema.columns WHERE TABLE_SCHEMA = 'your_database_name' AND TABLE_NAME = 'your_table_name' AND COLUMN_NAME = 'your_column_name'; –

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