将MYSQL字段拆分为数组并进行搜索

时间:2017-03-01 10:22:47

标签: php mysql

我在MySQL表中有字段。该领域被称为' vehicle'当我添加车辆时,我按ID而不是名称添加它们,因此该字段填充为&#;; 2:3:4:6:7:9' 2将是一辆车,7将是一辆自行车等。

我想快速而简单地想要做的就是当我查询表格时,我想看看现场车辆是否含有' 2'在2:3:4:7:9中的那个领域。

我已经尝试了很多但是空白了吗?

由于

2 个答案:

答案 0 :(得分:0)

如果您只是想找到任何特定号码,那么就这样做

$data = "2:3:4:6:7:9";
echo "found on index : " . array_search("2", explode(":", $data));

答案 1 :(得分:-1)

您可以在查询查询中使用 FIND_IN_SET ,例如

SELECT *
FROM yourTable
WHERE FIND_IN_SET('2',REPLACE(vehicle ,':',',')) > 0;

<强>样品

mysql> SELECT FIND_IN_SET('1',REPLACE('2:3:4:7:9',':',',')) as a;
+------+
| a    |
+------+
|    0 |
+------+
1 row in set (0,00 sec)

mysql> SELECT FIND_IN_SET('2',REPLACE('2:3:4:7:9',':',',')) as a;
+------+
| a    |
+------+
|    1 |
+------+
1 row in set (0,00 sec)

mysql> SELECT FIND_IN_SET('7',REPLACE('2:3:4:7:9',':',',')) as a;
+------+
| a    |
+------+
|    4 |
+------+
1 row in set (0,00 sec)

mysql> SELECT FIND_IN_SET('8',REPLACE('2:3:4:7:9',':',',')) as a;
+------+
| a    |
+------+
|    0 |
+------+
1 row in set (0,00 sec)