Tag: sql

SQL:查找每个组的最大logging数

可能重复: 检索每个组中的最后一条logging 我有一个表,它有三个字段和数据。 名称,顶部,总计 猫,1,10 狗,2,7 猫,3,20 马,4,4 猫,5,10 狗,6,9 我想要为每个NameselectTotal值最高的logging,所以我的结果应该是这样的: 名称,顶部,总计 猫,3,20 马,4,4 狗,6,9 按总分名次排列了,但是由于结果给了组最高的logging。 任何人都可以指导我吗?

mysql_real_escape_string()做了什么,addslashes()不?

为什么我们需要像mysql_real_escape_string()这样的数据库特定的函数? 它能做些什么,addslashes()不? 忽略参数化查询的优越select,是一个使用addslashes()的webapp,它仍然很容易受到SQL注入的攻击,如果是的话,怎么样?

MySQL:将逗号分隔的列表分成多行

我有一个非正规化的表,其中包含一个逗号分隔的列,这是另一个表的外键: +———-+————-+ +————–+——-+ | part_id | material | | material_id | name | +———-+————-+ +————–+——-+ | 339 | 1.2mm;1.6mm | | 1 | 1.2mm | | 970 | 1.6mm | | 2 | 1.6mm | +———-+————-+ +————–+——-+ 我想将这些数据读入不提供过程语言的search引擎。 那么是否有办法在这个列上build立一个连接, 或者在这个数据上运行一个查询来插入适当的条目到一个新的表中? 结果数据应该如下所示: +———+————-+ | part_id | material_id | +———+————-+ | 339 | 1 | | 339 […]

ms-access中是否有一个group_concat函数?

ms-access中是否有一个group_concat函数?

更改视图中使用的PostgreSQL列

我希望PostegreSQL放松一下。 每次我想改变一个视图中使用的列,似乎我必须删除视图,更改字段,然后重新创build视图。 我可以放弃额外的保护,只是告诉PostgreSQL让我改变领域,然后找出调整视图? 澄清:我明白什么是一个观点。 实际上,这是因为这个视图就像一个子查询,我希望能够改变底层的表格,并让视图接受这个变化。 假设我有以下几点: CREATE TABLE monkey ( "name" character varying(50) NOT NULL, ) CREATE OR REPLACE VIEW monkey_names AS SELECT name FROM monkey 我真的只想在迁移脚本中执行以下操作, 而不必删除并重新创build视图。 ALTER TABLE monkey ALTER COLUMN "name" character varying(100) NOT NULL

为什么我的IDENTITY列值有差距?

我有个问题。 我的ID主(IDENTITY)被configuration为自动递增(types:int)。 但是,当我插入一个新的行,这个新的ID是不连续的。 发生什么事? 任何解决scheme 编辑: […] [id]int] IDENTITY(1,1) NOT NULL, […] CONTRAINT [PK_Medida] PRIMARY KEY CLUSTERED ( [id] ASC ) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]

mysql_real_escape_string的缺点?

我已经看到这里有几个人声明,使用mysql_real_escape_string连接查询不会保护你(完全)SQL注入攻击。 但是,我还没有看到一个input示例,说明了mysql_real_escape_string不会保护您的攻击。 大多数示例忘记mysql_query仅限于一个查询,并且不正确地使用mysql_real_escape_string 。 我能想到的唯一例子如下: mysql_query('DELETE FROM users WHERE user_id = '.mysql_real_escape_string($input)); 这不会保护您免受以下input: 5 OR 1=1 我会看到这是mysql_real_escape_string不正确使用,而不是一个缺点,它是专为string而不是数值。 您应该转换为数字types,或者如果要在input消息时将input视为string,则应在查询中执行相同的操作,并在其周围引号。 任何人都可以提供一个input的例子, mysql_real_escape_string不依赖不正确的数值处理,或忘记mysql_query只能执行一个查询吗? 编辑:我感兴趣的是mysql_real_escape_string的限制,而不是比较它的替代品,我知道有新项目更好的select,而不是争议。

SQL:使用2个不同的auto_increment创build一个关系表

我有2个表,都有自己的自动递增的ID,这当然是主键。 当我想创build第三个表来build立这两个表之间的关系时,我总是有一个错误。 首先是你可以只有一个自动递增的列,第二个是我从这两个删除auto_increment语句时发生的,所以sql不允许我把它们作为外键,因为types匹配失败。 有没有办法可以创build一个关系表,而不会丢失自动递增function? 另一个可能的(但不是优先的)解决scheme可能是第一个表中有另一个主键,当然是用户的用户名,而不是自动增量语句。 这是不可避免的吗? 提前致谢。

在Spark DataFrame中查找每个组的最大行数

我试图使用Spark数据框而不是RDDs,因为它们看起来比RDD更高级,并且倾向于生成更多可读的代码,但是我将非常乐意获得关于手头任务更为惯用的build议。 在一个14节点的Google Dataproc集群中,我有大约6百万个名字被两个不同的系统翻译成ID: sa和sb 。 每Row包含name , id_sa和id_sb 。 我的目标是产生从id_sa到id_sb的映射,使得对于每个id_sa ,相应的id_sb是与id_sb相连的所有名称中最频繁的id。 我们试着用一个例子来澄清一下。 如果我有以下几行: [Row(name='n1', id_sa='a1', id_sb='b1'), Row(name='n2', id_sa='a1', id_sb='b2'), Row(name='n3', id_sa='a1', id_sb='b2'), Row(name='n4', id_sa='a2', id_sb='b2')] 我的目标是产生从a1到b2的映射。 实际上,与a1相关的名称分别是n1 , n2和n3 ,它们分别映射到b1 , b2和b2 ,所以b2是与a1相关联的名称中最频繁的映射。 以同样的方式, a2将被映射到b2 。 假设永远有一个赢家是没有问题的:不需要打破关系。 我希望我可以在我的数据groupBy(df.id_sa)上使用groupBy(df.id_sa) ,但是我不知道下一步该怎么做。 我希望有一个聚合,最后可以产生以下几行: [Row(id_sa=a1, max_id_sb=b2), Row(id_sa=a2, max_id_sb=b2)] 但也许我试图使用错误的工具,我应该回去使用RDD。

使用SQL来确定文本字段的字数统计

我最近一直在研究一些数据库searchfunction,并希望获得一些信息,如每个文档的平均词(例如数据库中的文本字段)。 我迄今发现的唯一的东西(没有在DB以外的select语言处理)是: SELECT AVG(LENGTH(content) – LENGTH(REPLACE(content, ' ', '')) + 1) FROM documents 这似乎工作*但你有其他的build议吗? 我目前正在使用MySQL 4(希望尽快转移到这个应用程序的版本5),但也有兴趣在一般的解决scheme。 谢谢! *我可以想象,这是一个相当粗糙的方式来确定这一点,因为它并没有考虑内容中的HTML等。 这对于这个特定的项目来说没问题,但是还有更好的方法吗? 更新:定义我的意思是“更好”:要么更准确,更有效率地执行,要么更“正确”(易于维护,良好的实践等)。 对于我提供的内容,上面的查询速度足够快,对于这个项目来说是准确的,但是我将来可能需要类似的东西(所以我问了一下)。