我有 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/