我有一个数据存储需求,其中每个项目都有几个字段,并且每个字段可以包含多个值(字符串)。我还需要运行一个搜索查询,其中将根据一个或多个字段值选择项。下面是我需要的结构:
Name: (this will be the name of an item)
Season: (name of the season)
Taste: (1 taste or several)
Funktion: (1 or several option)
Weight: (1 or several)
Volume: (1 volume or several)
Tips: (for comme
我需要一个简单的查询,用它的值和一些修改来更新mysql字段,例如,如果字段有值(3,4,5),我可以添加(,6),这只是在它有值的情况下,如果它为空,则用",“更新字段
我在web上搜索并找到了名为CONCAT的mysql函数,它返回了连接参数后得到的字符串。
我试过这个,但这个不起作用
UPDATE groups SET SubsID = CONCAT(SubsID,",5") WHERE GroupID = 2
它不返回任何问题,但0行受影响且字段未更新
我刚刚开始在我的MySQL数据库中使用INDEXes,我有点不确定我的想法是否能起作用。我有一个文本字段,它可以存储大量文本,需要进行搜索,还有另一个id INT字段。如果我在我id_column字段上有一个索引,在我的text_column上有一个全文索引,MySQL会在查询中同时使用这两个索引吗
SELECT * FROM notes WHERE id_column='123' AND MATCH(text_column) AGAINST(search_text)
??
其次,我有一组可以经常用于组合搜索的列。如果我在这些列中创建多列索引,如果使用的列在索引中从左到右排列在
我为医院里的病人准备了一张桌子,因此随着时间的推移,这个表可能包含数万行。医院唯一的ID编号(BIGINT)分配给作为主密钥的每个病人,其余的列是VARCHAR或CHAR,以及一个单一日期列。据我所知,主键是自动索引的,因此根据病人的ID进行搜索是最佳的(?)。
患者可以通过一个字段或该ID、姓名、地址、出生日期等的组合进行搜索。我可以通过在每个字段上创建索引来优化我的搜索吗?当对这些INDEXed字段的组合执行搜索时,此优化是否也能工作,例如
SELECT * FROM patients WHERE first_name="John" AND address="bl
我在做大学工作,在那里我必须搜索关键字。我的实体名为Position,我正在使用MySQL。我需要搜索的字段是:
- date
- positionCode
- title
- location
- status
- company
- tecnoArea
我需要在所有这些字段中搜索同一个单词。为此,我使用条件API创建了一个动态查询。几个字段都是同一个词,应该得到最大可能的结果。您对如何优化数据库上的搜索有任何建议吗?我应该问几个问题吗?
编辑
我将使用OR约束。
我从来没有找到一种很好的方法来索引一行的多个字段作为索引条目,或者在MySQL上模拟这个特性。
当字段作为标记或类似的概念工作时,就会出现问题。例:字段名为tag1、tag2、tag3。要快速搜索带有特定标记的行,需要有3个索引,并以最基本和最明显的方式执行3个单独的查询。
是否有任何方法将这3个字段索引为一个索引的条目,只允许一个搜索。
ID tag1 tag2 tag3
-- ---- ---- ----
01 abc xyz bla
02 foo bar ble
03 xyz bla bar
index
abc -> 01
bar -> 02 03
bla -&
我目前在mysql用户表中有一个名称和姓氏字段,以及一个搜索框,它们可以在其中同时输入,所以我的查询基本上是
SELECT name,surname FROM user
WHERE CONCAT(name,' ',surname) LIKE '@search%'
这很好,但是在一个大表上会变得非常慢,即使名称和姓氏列都是索引的,而且当搜索被分割时,它非常快,是否有方法索引连接字段,或者当两个字段都被索引时,它们是否已经被索引,切换到全文索引会更快吗?
我正在考虑使用ElasticSearch作为大型对象的搜索引擎。在一台机器上大约有5亿个物体。对于执行高级查询,far is Elasticsearch是一个很好的解决方案。但有一个问题是,我确实找到了在文档字段上创建二级索引的技术。在elasticsearch中,是否有可能像在列上的MySQL中那样创建第二个indecies?或者,是否实现了其他技术来加速对字段值的搜索?我使用的是单个服务器环境,每个行/对象必须存储大约300个字段。目前,我的数据库中大约有5亿个对象。
在进阶时谢谢!
我有一个非常大的MySQL表,其中包含大约150,000行数据。目前,当我尝试运行
SELECT * FROM table WHERE id = '1';
代码运行良好,因为ID字段是主索引。然而,对于该项目的最新发展,我必须按另一个字段搜索数据库。例如:
SELECT * FROM table WHERE product_id = '1';
这个字段以前没有索引;但是,我已经添加了一个,所以mysql现在对该字段进行索引,但是当我尝试运行上面的查询时,它的运行速度非常慢。EXPLAIN查询显示,当我已经为product_id字段添加了索引时,它却没有索引,因此
我有几个表,1个联系人和多个数据
Contacts有一个ID字段和一个Name字段,data有一个名为Contacts的字段(以及其他字段)。
例如,联系人
ID - Name
1 - James
2 - Mark
3 - Doug
例如,数据
ID - Contacts - Data
1 - 1,3 - more data
2 - 2 - more data
3 - 2,3,1 - more data
显然,逗号分隔的数字链接到contacts表中的几个人。如何将逗号分隔的列表转换为人名?标准的left join不起作用。
有没有一种方法可以在原始查询中做到这一点,或者我是否必须在原始whi
在Django,我有这样的情况:
models.py
class Book(models.Model):
isbn = models.CharField(max_length=16, db_index=True)
title = models.CharField(max_length=255, db_index=True)
... other fields ...
class Author(models.Model):
first_name = models.CharField(max_length=128, db_index=True)
last_n