2010-06-08 87 views
0

我需要查询帮助。sql问题select * from * where one = two order by

我想从表中选择一些值,但值取决于其他单元格的值。我选择后我需要对它们进行排序。可以使用ELECT column FROM table WHERE one=two ORDER BY ...?

感谢, 塞巴斯蒂安

+4

你试过了吗? – 2010-06-08 17:29:12

+0

是的,我尝试过,但我得到一个错误,以手动检查SQL语法。 – sebastian 2010-06-08 17:31:46

+2

你能显示你的查询吗?那么可能是别的什么是错的。 – 2010-06-08 17:33:00

回答

3

当然可以,只要你正确拼写SELECT

这里是你可以复制并粘贴到你的MySQL查询浏览器看到这种类型的动作查询的例子:

CREATE TABLE table1 (
    id INT NOT NULL, 
    name1 VARCHAR(100) NOT NULL, 
    name2 VARCHAR(100) NOT NULL, 
    sortorder INT NOT NULL 
); 

INSERT INTO table1 (id, name1, name2, sortorder) VALUES 
(1, 'Foo', 'Foo', 4), 
(2, 'Boo', 'Unknown', 2), 
(3, 'Bar', 'Bar', 3), 
(4, 'Baz', 'Baz', 1); 

SELECT id 
FROM table1 
WHERE name1 = name2 
ORDER BY sortorder; 

结果:

4 
3 
1 
0

也许有些工作实例帮助:

这将返回来自我的一个数据库的8100条记录:

SELECT * FROM fax_logs WHERE费= service_charge

这将返回从我的数据超过2700条记录:

SELECT * FROM fax_logs WHERE费= service_charge + 5

这将返回超过6900条记录:

SELECT * FROM fax_logs WHERE fee = service_charge + copies

0

我可能会误解你的问题,但我认为你试图比较第一列和第二列的值。在Mysql中,只能在ORDER BY子句中使用数字而不是名称来引用列: SELECT * FROM table ORDER BY 1(按第一列排序)。您不能使用WHERE中的列索引。