如何用SQL查询某列中不符合含另一列值格式的行?
查询不符合指定格式的数据行
需求:找出数据表中**图片列(image_col)**不符合指定命名规则的行,规则要求该列值需以image开头,包含id列和location列的内容,最后以.jpg结尾,中间可包含任意数字串。
示例数据表
| id | 地点(location) | 时间(time) | 图片列(image_col) |
|---|---|---|---|
| ID001 | PARIS | Evening | imageID001Paris00115.jpg |
| ID002 | London | Morning | imageID002London00130.jpg |
| ID003 | New York | Afternoon | newyorkimage1.jpg |
实现查询的SQL语句
SELECT * FROM your_table WHERE image_col NOT LIKE CONCAT('image', id, '%', REPLACE(location, ' ', ''), '%', '.jpg');
说明:
REPLACE(location, ' ', '')用于处理location列包含空格的情况(比如示例中的"New York");若需忽略大小写匹配,可统一转换字段大小写,示例如下:SELECT * FROM your_table WHERE LOWER(image_col) NOT LIKE CONCAT('image', LOWER(id), '%', LOWER(REPLACE(location, ' ', '')), '%', '.jpg');
查询结果
| id | 地点(location) | 时间(time) | 图片列(image_col) |
|---|---|---|---|
| ID003 | New York | Afternoon | newyorkimage1.jpg |
内容的提问来源于stack exchange,提问作者den
相关产品推荐
相关产品推荐

