mysql sphinx 生成唯一id

标签 mysql search sphinx

我将我的数据库分为 8 个部分,其中每个部分都包含带有表 user_data 的数据库,为了更好的搜索性能,我使用 sphinx 来索引所有这些数据,但我遇到了一个问题......因为表 user_data 没有任何唯一字段代表每一行,但它是一个一对多的表,我无法正确运行我的 sphinx 索引,因为它需要唯一的 id 并且这种方式解析重复的 id ...知道我该如何解决这个问题吗?还是通过来自不同段的所有子索引生成唯一 ID?

例子:

SELECT user_id, item_id, info
FROM user_data

返回的内容如下:

+----------+-----------------------+
| user_id  | item_id    | info     |
+----------+-----------------------+
| 10       | 151        | asdf     |
| 10       | 152        | test     |
| 11       | 151        | 545      |
| 12       | 151        | sdfsd    |
| 12       | 152        | eewwe    |
| 12       | 153        | dfsd     |

但我必须得到

+----------+-----------------------------+
| user_id  | item_id    | info     | id  |
+----------+-----------------------------+
| 10       | 151        | asdf     | 1   |
| 10       | 152        | test     | 2   |
| 11       | 151        | 545      | 3   |
| 12       | 151        | sdfsd    | 4   |
| 12       | 152        | eewwe    | 5   |
| 12       | 153        | dfsd     | 6   |

当然 id 在所有段中必须是唯一的

最佳答案

首先你应该在操作查询之前设置你的变量

sql_query_pre = SET @a := 1;

然后使用这个变量来获得虚构的自增

sql_query = SELECT @a := @a + 1 AS id, user_id, item_id, info FROM user_data

关于mysql sphinx 生成唯一id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4884209/

相关文章:

search - Artifactory AQL 搜索在 Promotion.status 上构建的版本

mysql - MySQL 自然语言搜索未返回预期结果的问题

php - sphinx 警告 : source src1: skipped 10 document(s) with zero/NULL ids

搜索词建议

java - sphinx 方面搜索 : 'with_all' analogue for php/java

php - 应用程序在后台向数据库发送指令

php - 我如何创建一个系统来计算上次看到的时间

mysql - 需要帮助来理解他的数据库关系

php - MYSQL 左连接与子查询

java - HashMap<String, Integer> 搜索键的一部分?