mysql - 如何使用 Capsule 通过给定列表参数查询所有数据?

标签 mysql database laravel

我使用Capsule用于查询数据库,

这是我的数据库表:

enter image description here

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%' )

或者您可以使用与查询匹配

  1. 将表引擎更改为 MyISAM,因为 InnoDB 不支持全文搜索
  2. 在 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/

    相关文章:

    mysql - 在 GridView 中显示文件的内容

    mysql - 从 sql 数据库中选择不同语言的条目的最新版本

    php - 根据 laravel 中选定的省份获取城市列表

    拉拉维尔 4 : how can I put data into every view?

    php - 根据数组的输出生成 Highcharts

    sql - 需要加入方面的帮助

    PHP MYSQL - 在同一查询中计算和平均

    mysql - SQL Server Migration Assistant (SSMA) - 它会删除源数据吗?

    mysql - 如何连接到本地机器上容器中运行的 MySQL 实例?

    php - 访问 stdClass 对象的变量