2009-09-11 18 views
7

私はMySQLを使用しています。私は9列のテーブルを持っています。そのうちの1つが主キーです。MySQLで単一の行を選択

プライマリキーまたは列8または4で1行を選択する方法はありますか。

+0

1行を選択してください: 'select * from yourtable limit 1;' –

答えて

18

私が正しくあなたの質問を理解していれば:

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

'LIMIT' keywordは1行のみが返さありますを確認します。

+0

これは私が道路をさらに下るのに役立ちます、ありがとう! – aggitan

+0

しかし、 "MySQLは、特定のサブクエリ演算子のサブクエリでLIMITをサポートしていません"。 [サブクエリに関する制限事項](https://dev.mysql.com/doc/refman/5.5/en/subquery-restrictions.html)を参照してください。 –

3
select * 
from MyTable 
where MyPrimaryKey = 123 
+0

これは動作します、ありがとうございます。 – aggitan

0

SQLの列には、「順序」が定義されていません。データベースシステムは一般に表示のための順序を追跡しますが、番号で列を選択するようデータベースに依頼するのは意味がありません。その内容を照会するには、列の名前を知る必要があります。

同じことがプライマリキーになります(ちなみに、単なる列ではない可能性があります)。クエリを実行するには、その列とその列の名前を知る必要があります。

あなたは

DESCRIBE tablename; 

そして、これらの事を知っている、または動的にそれらを把握する必要がない場合は、あなたの各列の名前を教えてくれますし、それが主キーかどうかの一部であるかどうか。他の結果と同様に、読めるテーブルが返されます。

関連する問題