在 mysql 查询中使用文件数据

问题描述 投票:0回答:1

我有一个以逗号分隔的用户 ID 文件。我想为这些用户

SELECT

也就是说我想它应该是这样的:

mysql> SELECT u.token, u.user_id FROM users u WHERE u.user_id IN (SELECT * LOAD_FILE('/home/alex/lzmigration/users'));

不知怎的,这个

LOAD_FILE
的东西不起作用。我不确定我是否明白为什么。

我收到此错误:

ERROR 1064 (42000):您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行 'LOAD_FILE('/home/alex/lzmigration/users'))' 附近使用的正确语法

这是版本信息。

mysql> SELECT VERSION();
+-----------+
| VERSION() |
+-----------+
| 8.0.35-27 |
+-----------+
mysql
1个回答
0
投票

要匹配以逗号分隔的字符串,您必须使用

FIND_IN_SET()
函数;
IN
用于 SQL 中的文字列表或返回多行的子查询。

SELECT u.token, u.user_id 
FROM users u 
WHERE FIND_IN_SET(u.user_id, LOAD_FILE('/home/alex/lzmigration/users'));

确保文件中逗号周围没有空格,因为

FIND_IN_SET()
不会忽略它们。

© www.soinside.com 2019 - 2024. All rights reserved.