我使用Capsule用于查询数据库,
这是我的数据库表:
ip_content
字段类型为文本。
现在我想使用capsule通过传递ip列表来查询数据,
比如传递[12.1.1.1, 13.2.2.5, 14.2.2.8]
参数,我想把服务器全部取出来。
以我的方式,我只能想到使用双for循环来实现它,那么有没有其他方法可以更有效地实现它。
最佳答案
你可以这样做
SELECT server_name FROM table
WHERE ( ip LIKE '%12.1.1.1%' OR ip LIKE '%13.2.2.5%' OR ip LIKE '%14.2.2.8%' )
或者您可以使用与查询匹配
- 将表引擎更改为 MyISAM,因为 InnoDB 不支持全文搜索
- 在 ip_content 列上创建全文索引,如下所示:
ALTER TABLE `table` ADD FULLTEXT INDEX `IP_INDEX` (`ip_content`);
- 在MYSQL的ini文件中设置ft_min_word_len = 1
- 重新启动Mysql
修复表
表QUICK
然后运行如下查询:
SELECT * FROM `table`
WHERE MATCH(ip_content)
AGAINST ('"13.2.2.5" "12.1.1.1" "14.2.2.8"' IN BOOLEAN MODE)
使用引号和空格分隔ip/单词
关于mysql - 如何使用 Capsule 通过给定列表参数查询所有数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59318030/