使用PHP搜索包含1 3 + 2 2这样的表达式的Mysql数据库

问题描述 投票:-2回答:1

我是新来的。我只有PHP和Mysql的基础知识。

我有一个数学表达式,如:

[1 3 + 2 4 + 9 2- x 1 x 2]

在MySQL数据库中存储为:

[1<sup>3</sup> + 2<sup>4</sup> + 9<sup>2</sup> - x<sub>1</sub>x<sub>2</sub>].

我想使用输入字符串$str='1^3 + 2^4 + 9^2 - x_1x_2';从MySQL数据库中搜索该列。 MySQL列设置为全文索引,因此我需要使用MATCH AGAINST方法进行搜索。

UPDATE:我在下面的应用程序中添加了相关代码。

我的问题是为什么MySQL查询返回0。如果我什至更改输入字符串,也会发生相同的情况。喜欢

$str=$_GET['search']; //$_GET['search'] is equal to '1<sup>3</sup> + 2<sup>4</sup> + 9<sup>2</sup> - x<sub>1</sub>x<sub>2</sub>'
//the $str contain the search string
$query = "(Select col1,col2,MATCH (col3) AGAINST ('".$str."' IN NATURAL LANGUAGE MODE) AS relevance from table_name WHERE MATCH (col3) AGAINST ('".$str."' IN NATURAL LANGUAGE MODE))";
$run = mysqli_query($connect, $query);
 $foundnum = mysqli_num_rows($run);
//$foundnum returning  0
php mysql regex search match-against
1个回答
0
投票

由于字符串1^31<sup>3</sup>不同,因此没有SQL方法可以使它们匹配。另外,没有简单的PHP代码可以声明它们相同。

© www.soinside.com 2019 - 2024. All rights reserved.