首页 > 解决方案 > mysql搜索查找范围内的数字并大于

问题描述

我正在尝试编写对 mysql 表的搜索,但如果可能的话,我正在努力。

我有一个可能有多个数字的表,即一个对象的大小可能是 [3, 6, 13, 26] 最初将它们分成不同的行允许搜索,但是对于更大/通过以下方式小于或介于搜索范围之间:-

SELECT * FROM mytable WHERE SeqNumber >=$POSTmin AND SeqNumber<=$POSTmax;

SELECT * FROM mytable WHERE SeqNumber BETWEEN $POSTmin AND $POSTmax;

不幸的是,将它们组合成 1 行,但具有多种尺寸 [3, 6, 13, 26] 仅适用于范围内的第一个值。搜索单个号码确实适用于 LIKE:-

SELECT * FROM mytable WHERE SeqNumber LIKE '%$POSTvarible%';

但是我想知道是否有可能,如果可以的话,如果该数字出现在单元格中的随机位置,我可以搜索 Max 和 Min?

标签: phpmysql

解决方案


我的意思是您可以使用以下命令在一行中检索所有匹配的尺寸GROUP_CONCAT

<?php
$POSTmin = 6;
$POSTmax = 30;

$query = "SELECT Name, GROUP_CONCAT(SeqNumber) SeqNumbers 
FROM mytable 
WHERE SeqNumber BETWEEN ? AND ?
GROUP BY Name;";

// get DB version using PDO
$stmt = $pdo->prepare($query);
$stmt->execute([$POSTmin, $POSTmax]);
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($rows);

PHP PDO GROUP_CONCAT 在线测试


推荐阅读