SELECT * FROM table_name WHERE column_name LIKE '%%s%';这样使用对吗
时间: 2024-03-08 19:50:30 浏览: 104
不太对。如果你想在 SQL 语句中使用占位符 %s,并且同时要进行模糊匹配,可以使用 CONCAT 函数:
```
SELECT * FROM table_name WHERE column_name LIKE CONCAT('%', %s, '%');
```
这里的 %s 表示占位符,使用 CONCAT 函数将其与 % 符号拼接起来,形成一个可以进行模糊匹配的字符串。注意,在 Python 中,你需要在执行 SQL 语句前,先将占位符 %s 替换成具体的值。
相关问题
SELECT * FROM table_name WHERE column_name LIKE '%123%'查询的为什么会出现包含不是连续123的字段
如果在查询条件中使用LIKE '%123%',那么查询结果会包含任何包含数字1、2、3的字符串,无论它们是否连续。因为%通配符表示匹配任意字符,所以在这个查询中,任何包含数字1、2、3的字符串都会被匹配到。
如果想要只匹配包含连续的数字1、2、3的字符串,可以使用正则表达式替代LIKE操作符,例如:
```
SELECT * FROM table_name WHERE column_name LIKE '%[1-3][1-3][1-3]%'
```
这个查询语句使用了正则表达式的字符集([1-3]匹配数字1、2、3中的任意一个),可以精确匹配连续的数字1、2、3。
SELECT *FROM table_nameWHERE REGEXP_LIKE(column_name, '^hello$');
这是一条 SQL 查询语句,意思是从表中选择所有行,并且其中某一列的值必须为"hello",而且不允许有其他字符。其中的"REGEXP_LIKE"是一个函数,它使用正则表达式来匹配字符串。'^hello$'是一个正则表达式,表示字符串必须以"hello"开始,以"hello"结束,中间不能有其他字符。
阅读全文