繁体   English   中英

为什么此查询返回结果本身呢?

[英]Why is this query returning part of itself in the result?

我以前没有遇到过。 这是查询:

$query="SELECT 
  CONCAT_WS(' ',
        TRIM(SUBSTRING_INDEX(
             SUBSTRING(document, 1, INSTR(document, 'Quickstart') - 1 ),
             ' ',
             -8)
        ),'Quickstart',
        TRIM(SUBSTRING_INDEX(
             SUBSTRING(document, INSTR(document, 'Quickstart') + LENGTH('Quickstart') ),
             ' ',
             5)
        )
)
FROM documents WHERE MATCH(document)
AGAINST('Quickstart' IN BOOLEAN MODE )";

这是结果数组:

[0] => Array
    (
        [CONCAT_WS(' ',
        TRIM(SUBSTRING_INDEX(
             SUBSTRING(document, 1, INSTR(document, 'Quickstart') - 1 ),
             ' ',
             -8)
        ),'Quickstart',
        TRIM(SUBSTRING_INDEX(
             S] => 
Quickstart for set up. 1. Register your
    )

它返回的最后一部分似乎是正确的:

Quickstart for set up. 1. Register your

但是为什么查询本身会返回? 这是PHP:

if (!$result = mysql_query($query)) send(mysql_error(),"e");
$hitArray=array();      
while ($row=mysql_fetch_array($result, MYSQL_ASSOC) ) { $hitArray[]=$row; }

谢谢参观。

它不返回自身,而是数组中的键,尝试为CONCAT_WS部分分配别名:

SELECT 
CONCAT_WS( ... ) as concatenated
FROM documents WHERE MATCH(document)
AGAINST('Quickstart' IN BOOLEAN MODE )

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM