我有这样的表结构(垂直设计).我可以为每个用户提供无限数量的属性(例如:城市,电话等).
表:tbl_UserAttributes
???????????????????????????????????
| UserID ? FieldName ? Value |
???????????????????????????????????
? 341 ? city ? MyCity1 ?
? 772 ? phone ? 1234567890 ?
? 033 ? city ? MyCity2 ?
? 044 ? sex ? M ?
? 772 ? firstname ? MyName ?
? --- ? --- ? --- ?
???????????????????????????????????
Run Code Online (Sandbox Code Playgroud)
我必须实现一个搜索功能,它应该输出我们为水平设计的表应用查询的行:
SELECT
FieldName
FROM
tbl_UserAttributes
WHERE
city='%Mumbai%' AND
sex='M' AND ...
Run Code Online (Sandbox Code Playgroud)
请不要让我改变数据库设计.
更新:目前,我有一个JOIN解决方案,非常慢,它有时会挂起服务器.任何替代方法?