mysql - 检查表列中的变量数组时使用哪个 mySQL 运算符

标签 mysql sql-like wordpress sql-in

我有一个包含字符串的表列。该字符串的长度根据存储在其中的变量数量而变化,但始终遵循相同的模式。该字符串由 Wordpress 插件动态生成,我对它的存储方式没有影响。在这里:

a:3:{i:0;s:3:"509";i:1;s:3:"511";i:2;s:3:"514";}

用户可以从 HTML 表单的多选字段中选择任意数量的变量。我将这些存储在 session 中:

Array ( [0] => 511 [1] => 514 ) 

session 必须包含至少一个值,但可以包含更多。

如何在我的表列中搜索 511 或 514 等(存储在我的 session 数组中)的出现?

到目前为止,我已经尝试过 LIKE、IN 和 EXISTS,但都没有用。

请注意,我使用的是 WP_query (Wordpress),所以我唯一可用的运算符是:

 '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN', 'EXISTS' and 'NOT EXISTS'

以防万一有人需要它,这是我正在使用的 WP_query meta_query 数组:

array(
                    'key' => 'teacher',
                    'value' => $_SESSION['selected_teachers'],
                    'compare' => 'IN'
                )

非常感谢!

最佳答案

试试这个来生成 WP_query 的 meta_query

$meta_queries = array( 'relation' => 'OR');   
foreach($_SESSION['selected_teachers'] as $v) {     
    array_push($meta_queries, 
                array(
                    'key' => 'teacher',                             
                    'value' => ':"'.$v.'";',                             
                    'compare' => 'LIKE'                         
    )); 
}

这将使用 'WHERE ... LIKE %...%' 生成 mysql 查询,它会有一些性能问题。

关于mysql - 检查表列中的变量数组时使用哪个 mySQL 运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758664/

相关文章:

MySQL - 如何获得重复的相邻字段的总和

php - 使用 PDO fetch 查询 Mysql 返回 false

php - MYSQL Trigger()与永久删除

SQL Server - 包含查询

mysql - SQL:使用 LIKE,如果搜索匹配该行中的任何值,则返回该行

mysql - Sails js - waterline orm - mysql。表自动生成

sql - SQL 中的动态 Like 语句

php - WordPress 中使用 eval() 插件的漏洞示例

css - 获取标题以根据容器大小自动减小字体大小以适合 1 行

html - 为什么图像不会出现在 WordPress 网站的版权部分?