请问有人可以帮助我吗?我想选择 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/