使用MYSQL获取最长字符串
就像数字有最小值和最大值一样,有什么东西可以得到最长和最短的字符串/文本吗 我知道长度和字符长度,但它只返回长度,而不是文本本身的值 查询:使用MYSQL获取最长字符串,mysql,Mysql,就像数字有最小值和最大值一样,有什么东西可以得到最长和最短的字符串/文本吗 我知道长度和字符长度,但它只返回长度,而不是文本本身的值 查询: SELECT LENGTH(c.name) AS catname, i1.ref, MIN(i1.scost) as mincost, SUM(i1.instock) as totalstock FROM inventory i1 LEFT JOIN app.categories c ON i1.ref = c
SELECT
LENGTH(c.name) AS catname,
i1.ref,
MIN(i1.scost) as mincost,
SUM(i1.instock) as totalstock
FROM
inventory i1
LEFT JOIN app.categories c ON i1.ref = c.ref
WHERE
i1.date = ( SELECT
MAX(i2.date)
FROM
inventory i2
WHERE
i2.ref = i1.ref AND
i2.location = i1.location)
AND i1.ref LIKE '%GS-5008PL%'
GROUP BY i1.ref
编辑添加:我甚至尝试过合并,但它不起作用。获取最大长度会很好,但至少不为null会很好。您的意思是选择一个字段在所有记录中最长的吗? 如果是,您可以使用
select * from table order by length(yourTextField) desc limit 0,1
如果表很小:
select your_column str, length(your_column) as len
from your_table
where length(your_column) = (select len
from (select your_column str, length(your_column) as len
from your_table order by length(your_column) desc)
where rownum < 2)
这很简单,但我的要复杂得多。别忘了它不会被索引,所以性能会随着结果集大小成比例下降。也许可以添加一个字段到记录长度字段,插入一个具有字段长度的记录,您可以对其进行索引。但这不是一个好主意。您认为您的问题比下面提供的示例更复杂,但我不明白为什么。看见