Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/279.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Mysql在使用转义斜杠和匹配语句时不返回结果_Php_Mysql_Match_Full Text Search - Fatal编程技术网

Php Mysql在使用转义斜杠和匹配语句时不返回结果

Php Mysql在使用转义斜杠和匹配语句时不返回结果,php,mysql,match,full-text-search,Php,Mysql,Match,Full Text Search,我有一个记录,firstname等于\。出于某种原因,它没有把唱片还给我 SELECT firstname,lastname,middlename, primary_emailaddress,alternate_emailaddress,personal_address_line1, personal_address_line2,personal_address_city,facebook_username, twitter_username,googleplu

我有一个记录,
firstname
等于
\
。出于某种原因,它没有把唱片还给我

SELECT 
    firstname,lastname,middlename,
    primary_emailaddress,alternate_emailaddress,personal_address_line1,
    personal_address_line2,personal_address_city,facebook_username,
    twitter_username,googleplus_username,linkedin_username,
    personal_website_url,birthday_month,notes,personal_address_zipcode,
    company_address_zipcode,home_phonenumber,company_phonenumber,
    cell_phonenumber,birthday_day,birthday_year,hash 
FROM contacts 
WHERE (
        MATCH( firstname,middlename,lastname,
            primary_emailaddress,alternate_emailaddress,personal_address_line1,
            personal_address_line2,personal_address_city,facebook_username,
            twitter_username,googleplus_username,linkedin_username,
            personal_website_url,birthday_month,notes ) AGAINST ('\\*' IN BOOLEAN MODE) 
        OR personal_address_zipcode REGEXP('(\\*)') 
        OR company_address_zipcode REGEXP('(\\*)') 
        OR home_phonenumber REGEXP('(\\*)') 
        OR company_phonenumber REGEXP('(\\*)') 
        OR cell_phonenumber REGEXP('(\\*)') 
        OR birthday_day REGEXP('(\\*)') 
        OR birthday_year REGEXP('(\\*)') 
    ) 
AND addressbook_id = 4

问题是,默认情况下,很短的单词没有索引。文件是否:

要编制索引的单词的最小和最大长度由 ft_min_word_len和ft_max_word_len系统变量。(见第节) 5.1.4“服务器系统变量”。)默认最小值为四个字符;默认最大值取决于版本。如果你改变 无论是哪个值,都必须重建全文索引。例如,如果 如果要搜索三个字符的单词,可以设置 通过在选项中输入以下行,可以使用ft_min_word_len变量 文件:

这适用于布尔搜索和自然语言。您需要更改选项以重新生成索引

或者,您可以为
firstname
输入
regexp
表达式:

    OR firstname REGEXP('(\\*)') 

你说的选项文件是指php.ini?@jkushner。不,这是MySQL的选项文件。你可以在这里读到:。@jkushner。我不知道。在某种程度上,这取决于你的数据。我在my.cnf中添加了ft_min_word_len,但它似乎不起作用。@jkushner。你重建索引了吗?
    OR firstname REGEXP('(\\*)')