postgres user1('1,2,3', 'Cheese', 9.99),user2('12,3', 'Cheese', 9.99),通过模糊查询1,查询user1
时间: 2023-12-26 18:04:35 浏览: 11
假设你要查询的是 `user1`,且需要模糊匹配的是 `1`,可以使用以下 SQL 语句:
```sql
SELECT * FROM table_name WHERE id = 'user1' AND field1 LIKE '%1%';
```
其中,`table_name` 是你的表名,`id` 是用来标识不同用户的字段名(假设这里是 `id`),`field1` 是包含需要匹配的字段的列名(假设这里是第一个列),`%1%` 表示需要匹配的模糊字符串,这里就是 `1`。
相关问题
postgres user1的数据是“1,2,3”user2的数据是"12,3",模糊查询1的时候,只有user
如果你需要查询的是包含数字 `1` 的行,但是只想匹配以 `1` 开头的数字,可以使用以下 SQL 语句:
```sql
SELECT * FROM table_name WHERE id = 'user1' AND field1 LIKE '1,%' OR field1 LIKE '%,1,%' OR field1 LIKE '%,1';
```
其中,`table_name` 是你的表名,`id` 是用来标识不同用户的字段名(假设这里是 `id`),`field1` 是包含需要匹配的字段的列名(假设这里是第一个列),`LIKE` 操作符中 `%` 表示任意字符的占位符。上述查询语句中,我们使用了三个 `LIKE` 操作符来匹配以 `1` 开头、中间或结尾的数字,其中的逗号用来区分不同的数字。
需要注意的是,这种方式并不是最优解,因为它可能会匹配到一些不符合要求的数据。如果你想要更严谨的匹配,可以考虑使用 Postgres 内置的数组类型来存储这些数字,然后使用数组函数来进行查询。
postgres user1的数据是“1,2,3”user2的数据是"12,3",user3的数据为“1”,模糊查询1的时候,只有user1跟user3
如果你需要查询包含数字 `1` 的行,并且只想匹配整个字段中包含数字 `1` 的情况,可以使用以下 SQL 语句:
```sql
SELECT * FROM table_name WHERE field1 LIKE '%1%' AND (field1 = '1' OR field1 LIKE '1,%' OR field1 LIKE '%,1' OR field1 LIKE '%,1,%');
```
其中,`table_name` 是你的表名,`field1` 是包含需要匹配的字段的列名(假设这里是第一个列),`LIKE` 操作符中 `%` 表示任意字符的占位符。
上述查询语句中,我们首先使用 `%1%` 匹配整个字段中包含数字 `1` 的情况,然后使用括号将下面的条件组合在一起,确保只有满足以下四种情况之一的行才会被查询到:
- `field1` 中只包含数字 `1`
- `field1` 中以数字 `1` 开头
- `field1` 中以数字 `1` 结尾
- `field1` 中包含数字 `1`,并且数字 `1` 前后都有其他数字或逗号分隔符
这样就可以查询到只有 `user1` 和 `user3` 两行符合要求的记录了。