在MySQL中选择单行?

如果要基于主键选择单个行,请使用WHERE子句。语法如下-

SELECT * FROM yourTableName WHERE yourPrimaryKeyColumnName = someValue;

为了理解上述语法,让我们创建一个表。创建表的查询如下-

mysql> create table selectWithPrimaryKey
   -> (
   -> Id int NOT NULL AUTO_INCREMENT,
   -> Name varchar(20),
   -> Age int,
   -> Marks int,
   -> PRIMARY KEY(Id)
   -> );

使用insert命令在表中插入一些记录。查询如下-

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('Larry',24,98);

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('John',23,89);

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('Mike',21,85);

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('Sam',26,56);

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('Carol',21,59);

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('Bob',20,91);

mysql> insert into selectWithPrimaryKey(Name,Age,Marks) values('David',28,93);

使用select语句显示表中的所有记录。查询如下-

mysql> select *from selectWithPrimaryKey;

以下是输出-

+----+-------+------+-------+
| Id | Name  | Age  | Marks |
+----+-------+------+-------+
|  1 | Larry |   24 |    98 |
|  2 | John  |   23 |    89 |
|  3 | Mike  |   21 |    85 |
|  4 | Sam   |   26 |    56 |
|  5 | Carol |   21 |    59 |
|  6 | Bob   |   20 |    91 |
|  7 | David |   28 |    93 |
+----+-------+------+-------+
7 rows in set (0.00 sec)

以下是从表中选择一行的查询-

mysql> select *from selectWithPrimaryKey where Id = 6;

这是输出-

+----+------+------+-------+
| Id | Name | Age  | Marks |
+----+------+------+-------+
| 6  | Bob  | 20   | 91    |
+----+------+------+-------+
1 row in set (0.00 sec)