1

testtb というテーブルには、ファイル パスを格納する列があります。SQL をC:\使用しますが、常に 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 に答える