例如,让我说我有桌面测试,只有一个属性。
CREATE TABLE test (
alphabet VARCHAR NOT NULL
);
+----------+
| alphabet |
+----------+
| a |
| b |
| c |
| d |
| e |
+----------+
我只想在b之后显示一个行表,所以我会做类似的事情。
SELECT * FROM test WHERE alphabet="b"
但是这只会给我行b,所以我会使用LIMIT命令来尝试显示其他行。我不知道如何使用LIMIT来做到这一点,因为LIMIT需要一个id而我的表没有任何类型的id或指示符,我该如何显示表格。
+----------+
| alphabet |
+----------+
| c |
| d |
| e |
+----------+
答案 0 :(得分:3)
SELECT * FROM test
WHERE alphabet > 'b'
或
SELECT * FROM test
ORDER BY alphabet
LIMIT 2, 100
答案 1 :(得分:0)
这应该有效:
您还可以将大多数运算符应用于文本字段。
Select * from test where alphabet > 'b'
答案 2 :(得分:0)
你的表架构不好,因为它应该总是有一个唯一的id来使用(看看你的表的规范化)。但这确实提供了你要求的结果..虽然它有时会返回不同的结果,但这不是一个很好的方法。
<强> SETUP:强>
CREATE TABLE customers (
`alphabet` VARCHAR(55)
);
insert into customers (`alphabet`)
values
('bill'),
('bob'),
('harry'),
('abe'),
('ben'),
('ashley'),
('cal'),
('fes'),
('parker'),
('gabe'),
('barry'),
('ruben'),
('sam'),
('john'),
('tim');
<强> QUERY:强>
运行第一个设置用户定义变量的查询,然后运行第二个
SET @QUERY := (
SELECT counter FROM(
SELECT @A := @A + 1 counter, alphabet FROM customers
CROSS JOIN (SELECT @A := 0) t
) temp
WHERE alphabet = 'ashley');
SELECT * FROM(
SELECT @A := @A + 1 counter, alphabet FROM customers
CROSS JOIN (SELECT @A := 0) t
) AS temp
WHERE counter > @QUERY;
答案 3 :(得分:-2)
SELECT * FROM test WHERE alphabet NOT IN ('b');