PHP/MySQL - 准确出现时在行中查找

标签 php mysql

我有 MySQL 列 Sizes,其中包含的每一行数据如下所示:

6 (39), 7 (40.5), 10 (44), 11 (45), 11½ (45.5), 12 (46)
6 (39), 7, 7 (40.5), 8 (42), 8½ (42.5), 9 (43), 10 (44.5), 11 (46)
6 (39), 7, 7 (40.5), 8 (42), 8½ (42.5), 9 (43), 11 (46)

我只想从 MySQL 中选择专门包含此 7, 的行。

因此,如果我只有三行包含 MySQL 选择的数据,我必须只获取最后两行,因为它们有 7,,这与 7 (45),

这是我到目前为止尝试过的方法,但不知何故它不起作用:

$Size = "7";
$Sizes = "$Size,";
$CategoryFilter = $_POST['CategoryFilter'];

$r = mysql_query("SELECT * FROM `products` WHERE `Category`='$CategoryFilter' AND `Sizes`  LIKE '%$Sizes%'");
$SDProductCode = array();
$Number = 0;
while($rowi = mysql_fetch_array($r))
        {
        $SDProductCode[] = $rowi['ProductCode'];
        $result['productcode'][] = $rowi['ProductCode'];
        $Number++;
        }

为什么我的选择不起作用,你能帮帮我吗?

提前致谢!

最佳答案

逗号周围有空格,但仍然需要一些操作,find_in_set应该做的伎俩:

SELECT *
FROM   `products` 
WHERE  `Category` = '$CategoryFilter' AND 
       FIND_IN_SET(REPLACE('$Sizes', ' ', ''), REPLACE(`Sizes`, ' ', '')) > 0

注意: 如果您搜索的是 '7' 而不是 '7,',这应该有效。我猜想使用逗号首先有一个解决方法,所以这可能是可以接受的。

关于PHP/MySQL - 准确出现时在行中查找,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34385420/

相关文章:

javascript - 在动态 php mysql 查找中丢失输入字符

mysql - 日期格式和 SQL 查询说明

mysql - 如何在 mysql 中编写多个选择查询,即一个查询返回一些 id,然后我将根据返回的 id 编写选择查询?

php - 正则表达式获取冒号之前的所有数字

PHP 重定向 - (SNI) 错误定向请求客户端需要一个新的连接 - 主机与服务器名称指示不匹配

javascript - 如何在sql中选择五乘五的数据

PHP MySQL无法创建表

php - 连接和查询两个 mysql 表

mysql - MySQL 中何时使用单引号、双引号和反引号

mysql - 根据列的值更新列