2013-04-11 112 views
0

我有一个表像这样的MySQL,MySQL中的文本stroed为“文本”和数字存储为“INT”我怎么能在一列

+----+-----------------------------------+---------+ 
| date |    text    | number | 
+------+---------------------------------+---------+ 
| 12.1 | hello!       | 10  | 
| 12.1 | hello every one!    | 15  | 
| 12.1 | hello every one! welcome here! | 20  | 
+------+---------------------------------+---------+ 
选择具有较长的文本行

文字越长,数字越大 那我该如何选择文字最长的行“你好,每一个!欢迎来到这里!” 现在我有这样的代码: 选择 日期,MAX(文本),MAX(数字) GROUP BY 日期 但没有奏效 那么我该怎么办?

+0

您确定可以用这种格式存储日期吗? – Satya 2013-04-11 00:43:44

+0

是数字=长度(文本)? – SoEnLion 2013-04-11 00:48:19

+0

不,数字长度不等(文字) – laiqn 2013-04-11 00:50:42

回答

2
SELECT date, text, number from table order by length(text) desc, number LIMIT 1 
+0

我怎么回声我选择的行,我试过echo $ row ['MAX (length(text))']但是它返回了文本长度的数量,比如100,我想回显文字 – laiqn 2013-04-11 00:48:13

+0

啊,你实际上并不想要文本的长度。我更新了答案,应该选择文字最长的那一行。另外,我只是把'table'放在查询中,因为我没有看到你的实际表名是什么。 – clav 2013-04-11 00:54:02

+0

我在我的SELECT中已经有了一个ORDER句子,按ID排序,我该如何写两个句子ORDER – laiqn 2013-04-11 01:10:06