标签: database

数据库/集合任意但具体的顺序

我想创建一个具有特定顺序的数据库(我正在使用mongodb)集合,该集合也可以重新排列.例如,如果我有

[A,B,C,D,E]
Run Code Online (Sandbox Code Playgroud)

我可以将E移到第三个位置,顺序就是

[A,B,E,C,D]
Run Code Online (Sandbox Code Playgroud)

我想尽可能少地更改对象,因此在每个对象上放置一个索引将不起作用(因为我需要更改所有后续元素的索引以进行简单的移动).

我还可以像链接列表一样创建对象,因此每个对象都具有前一个和下一个对象的id.示例更改将如下所示.

["A":{prev:null, next:"B"},
"B":{prev:"A", next:"C"},
"C":{prev:"B", next:"D"},
"D":{prev:"C", next:"E"},
"E":{prev:"D", next:null}]
Run Code Online (Sandbox Code Playgroud)

会变成

["A":{prev:null, next:"B"},
"B":{prev:"A", next:"E"},
"C":{prev:"E", next:"D"},
"D":{prev:"C", next:null},
"E":{prev:"B", next:"C"}]
Run Code Online (Sandbox Code Playgroud)

对于任何大小的集合,这最多可以更改5个对象.更改可以表示为一个更新的对象,并使用一些逻辑来确定需要更新的其他对象.这是可行的,但我想知道是否有比这更好的方法.有没有更简单的方法来跟踪任意列表的顺序?

database collections mongodb

5
推荐指数
1
解决办法
871
查看次数

这有什么不对?在我的代码中(将图像插入数据库 - C#)

我试图从C#winform在我的访问数据库中插入一个图像.我使用以下代码:

    private void button1_Click(object sender, EventArgs e)
    {
        OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\db1.mdb");
        OleDbCommand cmd = con.CreateCommand();
        cmd.CommandText = "INSERT INTO Table1 (Product, Manufacturer, Description, Price, Image) VALUES ('Column1', 'Column2', 'Column3', 'Column4', @img)";
        byte[] yourPhoto = imageToByteArray(pictureBox1.Image);
        cmd.Parameters.AddWithValue("@img", yourPhoto);
        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
    }

    public byte[] imageToByteArray(System.Drawing.Image iImage)
    {
        MemoryStream mMemoryStream = new MemoryStream();
        iImage.Save(mMemoryStream, System.Drawing.Imaging.ImageFormat.Png);
        return mMemoryStream.ToArray();
    }
Run Code Online (Sandbox Code Playgroud)

当我运行代码时,它向我显示一个错误:Syntax error in INSERT INTO statement. 我的代码中有什么问题?我可以使用相同的查询成功地将文本插入到数据库的字段中.

c# database winforms

5
推荐指数
1
解决办法
1040
查看次数

如何在joomla 1.7中用AND编写'WHERE'子句条件?我没有数据保存更新

请建议如何在joomla中编写以下UPDATE查询AND.

码:

$query = JFactory::getDbo()->getQuery(true);
$db =& JFactory::getDBO();
$query->update('table1');
$query->set('id = ' . $db->quote($idname));
$query->set ('day='. $db->quote($this->_day));
$query->set('id2 = ' . $id2);

$query->where('id = '. (int)$idname)
        AND('id2=' .(int)$id2 );
Run Code Online (Sandbox Code Playgroud)

更新失败,错误是这样的:

//........[something before ]....

array(3) {
    [0]=>
    string(11) "id = '1'"
    [1]=>
    string(14) "id2='2'"
    [2]=>
    string(17) "date = 2012-04-02"    [it seems i got all the value pass to be update]
  }
  ["glue:protected"]=>
  string(4) "
, "
}
["where:protected"]=>
object(JDatabaseQueryElement)#251 (3) {
  ["name:protected"]=>
  string(5) "WHERE"
  ["elements:protected"]=>
  array(1) { …
Run Code Online (Sandbox Code Playgroud)

mysql database joomla

5
推荐指数
2
解决办法
1万
查看次数

如何使用BoneCP记录连接池数据

有没有人知道使用BoneCP来记录连接池数据(即打开和空闲数据库连接的数量)?使用我正在迁移的C3P0很容易实现(实际上这些信息默认记录在那里)但是看起来很难获得唱歌BoneCP.现在我在日志中看到的是原始SQL语句.

java database connection-pooling bonecp

5
推荐指数
1
解决办法
1536
查看次数

如何在MS Visual Studio表编辑器中输入NULL到数据库表单元格?

如何NULL在MS Visual Studio表编辑器中输入数据库表格单元格的值?

database null visual-studio-2010

5
推荐指数
1
解决办法
339
查看次数

在PHP中回应表的总和

我在一个名为Points的表中有2列.2列是UserPoints和UserID.

我希望能够回显用户拥有的总积分数.

我有类似的东西,但我认为没错.

$getTotalPoints = mysql_query("SELECT SUM(UserPoints) FROM `Points` WHERE `UserID` = '1'") or die(mysql_error()); 
$totalPoints = mysql_fetch_array($getTotalPoints);
Run Code Online (Sandbox Code Playgroud)

当我通过回显"$ totalPoints"来回应上述陈述时,我得到"数组".

有人知道正确的查询吗?

php mysql database sum

5
推荐指数
1
解决办法
399
查看次数

如何找出数据库上的SQL查询所需的临时空间?

我们的客户遇到了一些不一致数据的问题,我们给了他们一个查询来修复它.

现在,在运行查询之前,客户要求我提供一个查询,该查询将提供运行该查询所需的临时空间.这实际上很重要,因为此查询可能会影响表中的许多条目.

以下是我发送给他们修复问题的查询:

declare
  cursor cur is select distinct SEQID from D_LEAD where SEQID IN( SELECT SEQID FROM D_LEAD WHERE CURR_FLAG = 1 GROUP BY
  SEQID HAVING COUNT(SEQID) >1);

  seq NUMBER; 

begin

  open cur;
  loop
    fetch cur into seq;
    update D_LEAD set CURR_FLAG = 0 where LEAD_ID IN (SELECT LEAD_ID FROM D_LEAD WHERE ((LEAD_ID != (SELECT MAX(LEAD_ID) FROM D_LEAD WHERE SEQID=seq)) AND SEQID=seq));
    exit when cur%NOTFOUND;
  end loop;
  close cur;
commit;
end;
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

sql database oracle sql-execution-plan

5
推荐指数
1
解决办法
1802
查看次数

使用java将数据从excel文件上传到数据库

我需要使用java将excel表中的数据上传到数据库.

数据库将是oracle.

用户使用Web应用程序(Spring MVC前端)每月上传一次excel表.

excel表将具有数千个记录/行,例如大约15000或更多.

  1. 在数据库中上传这些庞大数据的最快方法是什么?我们使用简单的JDBC(Spring的JDBC模板).
  2. 我们如何处理交易沙错误,因为在上传数据时可能会出现错误,在这种情况下,部分上传的数据将无用?
  3. 我们需要能够通知用户错误,以便他可以更正excel表并重试?

请帮忙/

database excel file-upload

5
推荐指数
1
解决办法
1万
查看次数

哪个有效?查询子查询或连接表

以下是两个用于相同目的的查询示例(在此示例中,我希望对来自Patriks居住的同一城市的推销员进行优秀.)

select * 
from salesman 
where salesman.city = 
     ( select city 
       from salesman 
       where salesman_name='Patriks'
     );
Run Code Online (Sandbox Code Playgroud)

select s1.* 
from salesman s1,salesman s2 
where s1.city=s2.city 
  and s2.salesman_name='Patriks';
Run Code Online (Sandbox Code Playgroud)

哪个更好或更有效?为什么?(我知道这是一个很小的例子,但我想弄清楚,在复杂情况下这对于大数据库来说会很好.)

sql database oracle

5
推荐指数
2
解决办法
3375
查看次数

在Solr中索引数据库表数据的最佳方法?

我现在有一张大约有10万行的表.我想在Solr索引中索引此表中的数据.

所以天真的方法是:

  • 获取所有行
  • 对于每一行:转换为SolrDocument并将每个文档添加到请求中
  • 转换完所有行后,发布请求

我能想到的这种方法存在的一些问题是:

  • 将过多的数据(整个表的内容)加载到内存中
  • 发布一个大请求

但是,一些优点:

  • 只有一个数据库请求
  • 只有一个POST请求到Solr

这种方法不可扩展,我看到,因为随着表的增长,内存需求和POST请求的大小也会增加.我需要采取n行数,处理它们,然后采取下一行n

我想知道是否有人对如何最好地实现这一点有任何建议?

(ps.我确实搜索过该网站,但我没有发现任何类似的问题.)

谢谢.

database indexing solr batch-processing

5
推荐指数
1
解决办法
1255
查看次数