php - 如何从mysql表中选择所有数据,其中列是数组或单个,并且我的值与该数组的一项匹配?

标签 php mysql

请问有人可以帮助我吗?我想选择 mysql 表中的所有值,其中我想要检查获取值的列与单个值或值数组混合......所以更清楚地说,我有一个表来存储来自许多的所有消息发送者到一个或多个接收者......

我的功能是

public static function find_messagesTo_by_user_id($mess_to=0) {
          global $database;
          $mess_to = $database->escape_value($mess_to);
          $sql  = "SELECT * FROM ".self::$table_name;
          $sql .= " WHERE mess_to = '{$mess_to}'";
          $sql .= " AND mess_deleted = 0";
          $sql .= " ORDER BY mess_created_date DESC";
          $result_array = parent::find_by_sql($sql);
          return $resultrray;
      }

所以 'mess_to ' 有数组和单个值......它们只是数字,如 (1, 15, 25 ,26 ,27 , array(1,25, 27) , 31, 42, ..... ..)

拜托,我对此很头疼:)

我在等待任何帮助吗?

最佳答案

基于@Maluchi 的回答。确保您的数据如下所示:

| mess_to         |
+-----------------+
| ,123,           |
| ,123,456,152,1, |
| ,456,567,       |
| ,3,             |

因此将每个值括在 , 中。那么你可以安全地做:

WHERE `mess_to` LIKE "%,{$mess_to},%"

这可确保 $mess_to = 1 仅匹配第二行,而不匹配第一行。

<小时/>

您还可以对数据进行反规范化并创建一个表来JOIN

关于php - 如何从mysql表中选择所有数据,其中列是数组或单个,并且我的值与该数组的一项匹配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19322561/

相关文章:

php - 调整图像大小并用颜色填充比例间隙

mysql - 选择不同的最大日期

mysql - 奇怪的 MySQL 表大小

java - 使用 Hibernate 和 Spring 时连接过多

php - 使用 mysqli 而不是 mysql 时运行一段时间。

php - 如何从mysql中获取数据并存储在android中的Sqlite数据库中

php - 使用数组循环进行 PDO 插入

php - MySQL 数据库的独特 "Value"问题

php - 将数据插入到一个表中,然后读取该数据并将其插入到另一个表中

javascript - <div> 标签未显示 Ajax 的 JSON 响应