1

在我的名为 testtb 的表中有一个存储文件路径的列,现在我想找到以.开头的文件C:\。我使用 sql,但它总是返回 0。有什么问题?

--example 
select  FIND_IN_SET('C:\\', 'C:\\abc.png' )
-- my sql
 select  FIND_IN_SET('C:\\', filepath) from testtb;

这是我的表格数据:

id,    filepath,               srcfilepath
'1', 'C:\20160101\abc.jpg', 'C:\20160101\abc.jpg'
'2', 'D:\20160101\abc.jpg', 'D:\20160101\abc.jpg'
'3', 'E:\TP\20160101\abc.jpg', 'E:\TP\20160101\abc.jpg'
4

2 回答 2

2

你只是困惑。find_in_set()指 MySQL 中的值集。在 MySQL 中,这些是用逗号分隔的值:'1,2,3''abc,def,ghi'.

我认为您正在寻找instr()orposition()功能:

select instr('C:\\abc.png', 'C:\\')
于 2016-04-11T02:22:23.393 回答
1

find_in_set在这里不合适,并且like会按照您的期望进行。

mysql> select  'C:\\abc.png' LIKE 'C:\\\\%';
+------------------------------+
| 'C:\\abc.png' LIKE 'C:\\\\%' |
+------------------------------+
|                            1 |
+------------------------------+
1 row in set (0.00 sec)
于 2016-04-11T02:29:21.963 回答