SQL SELECT,其中单元格为一定长度并包含特定字符

时间:2019-01-01 14:03:49

标签: python sql mariadb

我正在尝试创建一个SELECT语句,该语句选择NAME最大的行。 5个字符和。在NAME中。 我只想要第一个,所以我在语句中添加了LIMIT 1。

我已经处理了以下

searchstring = "."
sql = "SELECT * FROM Table WHERE NAME LIKE %s LIMIT 1"
val = (("%"+searchstring+"%"),)
cursor.execute(sql, val)

但是我不确定如何在我的陈述中加入NAME的长度。

我的“表格”如下:

ID     NAME
1      Jim
2      J.
3      Jonathan
4      Jack M.
5      M.S.

因此,根据上表,我希望选择第2行和第5行。 我可以选择全部,然后遍历它们。但是,由于我只想要第一个,所以我想使用SQL语句?

谢谢。

3 个答案:

答案 0 :(得分:1)

您可以将CHAR_LENGTH函数与LIKE一起使用:

SELECT * FROM Table WHERE name LIKE '%.%' AND CHAR_LENGTH(name) <= 5 LIMIT 1

答案 1 :(得分:0)

尝试LEN() 选择LEN(结果字符串); 这将返回字符串的长度。但这也会计算空格。尝试使用LTRIM()删除它。

答案 2 :(得分:0)

Oracle SQL

SELECT * FROM Table WHERE name LIKE '%.%' AND LENGTH(name) < 6 and rownum < 2

基于sql语言(oracle,mysql,sql server等)使用

  
    

length()或char_length()

         

行数或限制