我有一个存储活动日志的表(InnoDB)。每行都有一个用户 ID、一个活动 ID 和位置数据。用户 ID 和活动 ID 列已编入索引,但不是唯一的。
当我查询select *
返回的数据看起来很正常 -
select * from table
当我使用另一列(甚至是这 2 列)查询用户 ID 或活动 ID 时,数据看起来很正常。
select user_id, city from table
当我使用 where 语句仅查询用户 ID 或活动 ID 时,数据看起来很正常。
select user_id from table where city = 'boulder'
当我仅查询用户 ID 或活动 ID 或仅使用子字符串查询在同一列上使用 where 语句查询用户 ID 或活动 ID 时,就会出现问题。
select user_id from table
或者
select user_id from table where substring(user_id, 1,5) = '12345'
返回的数据不是字段中的数据,而是看起来像索引位置(或类似的东西)的数据。我删除了索引,问题得到了解决,但在我添加索引后又出现了。
没有索引的例子 -
user_id
-------
123456789
231234567
234567543
索引示例 -
user_id
-------
081357652234
100000000000000
1000000000011
我尝试重新启动服务器,然后从 api 重新加载数据,但没有任何帮助。我已经在同一个数据库中的其他表上进行了测试,没有遇到这个问题。
这是我在配置中犯的错误还是错误?