2011-04-13 75 views
0

样的关键词使用我使用的MySQL数据库和我有一个名为INFO表有一栏INFO_NUMBER和INFO_SUBJECT,它包含字符串我想在MySQL

+--------------+-------------------------+ 
| INFO_NUMBER | INFO_SUBJECT   | 
+--------------+-------------------------+ 
| A3L1   | updated     | 
| A3L2   | updated updated   | 
| A3L3   | updated updated updated | 
+--------------+-------------------------+ 

,现在我想取只有INFO_SUBJECT包含通过like关键字更新的最大字符串的记录,我不知道应该追加更新的字符串多少次
这是因为搜索和我的要求是相同的。

我的查询是: SELECT INFO_NUMBER,INFO_SUBJECT FROM INFO where INFO_SUBJECT LIKE“UP%”; 但它返回所有记录。

感谢

+0

'INFO_SUBJECT包含最大更新的字符串'这是什么意思?我的猜测是你将需要字符串函数。 http://dev.mysql.com/doc/refman/5.0/en/string-functions.html – Jai 2011-04-13 10:40:30

+1

当然LIKE“UP%”会返回所有的结果,因为所有的值都是一样的。 – 2011-04-13 10:44:17

回答

0

这将工作:

SELECT * FROM INFO where length(INFO_SUBJECT) in (select max(length(INFO_SUBJECT)) from INFO); 

更多时间更新字是字符串更多的长度。

+0

嘿哈里感谢您的回复 – subodh 2011-04-13 11:19:04

+0

嘿哈里感谢您的回复,但是,假设INFO_SUBJECT列包含任何字符串不是以我想为我的搜索条件指定的关键词开始的,那么它也应该是获取,但我的要求说它取决于我的指定单词不依赖于长度。 – subodh 2011-04-13 11:26:26

+0

我知道这种情况,这就是为什么我在回答中说明:根据您的问题中的数据。 – 2011-04-13 11:27:52

0
SELECT * 
FROM INFO 
WHERE INFO_SUBJECT LIKE 'up%' 
AND length(INFO_SUBJECT) IN (SELECT MAX(length(INFO_SUBJECT)) FROM INFO); 

值得一提的是Harry Joy。他已经回答了你的问题。小字符串我在你的许可下添加Harry。

+0

如果有一个'INFO_SUBJECT'“pub pub pub pub pub pub pub”,而最长的“updated”'INFO_SUBJECT'只有一个条目,那么这将不起作用,因为最长的INFO_SUBJECT不是从“up” – 2011-04-14 07:53:36