我见过这个问题的解决方案是其他问题,但不是Python。我想知道,如何在字符串中每 x 个字符后插入一个字符?例如,每四个字符后有一个正斜杠:
Before:
AsQs7d4dJh2h
After:
AsQs/7d4d/Jh2h
Run Code Online (Sandbox Code Playgroud)
我知道在 Python 中我必须使用切片表示法。x = AsQs7d4dJh2h x = x[0:4]
但这只给了我第一个实例,我希望能够在任何字符串上执行此操作,无论该字符串的长度如何
更新新问题: 我想做的是将字符串分成卡对(2 张德州扑克),问题是该算法没有考虑“10”卡,因此分成每 4 张卡不会不起作用,例如,当面对字符串中的 10 张牌时,就会发生这种情况:
AsQs/10dA/h10h/2h
AsQs/10dA/h9h8/h
AsQs/10dA/h9h7/h
AsQs/10dA/h9h6/h
AsQs/10dA/h9h5/h
AsQs/10dA/h9h4/h
AsQs/10dA/h9h3/h
AsQs/10dA/h9h2/h
AsQs/10dA/h8h7/h
AsQs/10dA/h8h6/h
Run Code Online (Sandbox Code Playgroud)
所以我需要帮助的是如何插入正斜杠或从字符串中提取所有 2 张牌(在本例中为 3 手),无论字符串中是否有 1 张或多张“10”牌?
完整算法:
import itertools
strOutput = ""
lstMaster = ['As', 'Ks', 'Qs', 'Js', '10s', '9s', '8s', '7s', '6s', '5s', '4s', '3s', '2s',\
'Ad', 'Kd', 'Qd', 'Jd', '10d', '9d', '8d', '7d', '6d', '5d', '4d', '3d', '2d',\
'Ac', 'Kc', 'Qc', 'Jc', '10c', '9c', …Run Code Online (Sandbox Code Playgroud) 我创建了一个从 ASP.NET Web 窗体中的网页调用的 INSERT 语句
当我尝试执行查询时,我收到以下消息:ORA-01036 非法变量名称/编号。不幸的是,我只有对数据库本身的只读访问权限,所以我无法通过它的孤独来测试它们的查询。下面是我的整个方法,因为我不确定问题是在查询中还是在参数中。
public static String InsertIntoMiscReceiptCashTable(
String Payeedetail,String LocationCode,
String TransactionDate, String CashBookstoreCode,
String CashBookstoreSalesTaxCode,
String CashOther1DDL, String CashOther2DDl,
String CashOther1CommentTxt, String CashOther2CommentTxt,
String CashCommentTxtBx, String RecapCashCommentTxtBx,
String RecapCheckNumCommentTxtBx,
String RecapTotalCommentTxtBx, String RecapPymtRcvdCommentTxtBx,
String RecapChangeCommentTxtBx,
String SysUserName, Double CashBookstoreAmountTxtBx,
Double CashBookstoreSalesTaxAmountTxtBx,
Double CashOther1AmountTxtBx, Double CashOther2AmountTxtBx,
Double RecapCashAmountTxtBx,
Double RecapCheckNumAmountTxtBx, Double RecapPymtRcvdAmountTxtBx,
Double RecapChangeAmountTxtBx,
Double RecapTotalAmountTxtBx, Double CashTotalPaymentAmountTxtBx
)
{
DbLastKeySequence.addLastKeySequence("MISCRECEIPTSCASH.MISCRECEIPTID");
int MiscReceiptID_lastKeySequence =
Convert.ToInt32(DbLastKeySequence.findLastKeySequence("MISCRECEIPTSCASH.MISCRECEIPTID"));
String NextBatchNumber = ""; String NextReceiptNumber = "";
DataTable NextValues …Run Code Online (Sandbox Code Playgroud) 我有一个应用程序,它从多个套接字接收数据,然后将数据写入数据库。
我目前正在使用 EF 来执行此操作。我想知道如何才能提高效率。
我读到,批量插入速度更快,所以我只每 500 个插入保存对数据库的更改:
db.Logs_In.Add(tableItem);
if (logBufferCounter++ > 500)
{
db.SaveChanges();
logBufferCounter = 0;
}
Run Code Online (Sandbox Code Playgroud)
现在我已经分析了应用程序,74% 的工作是由该函数完成的:System.Data.Enitity.DbSet'1[System._Canon].Add
有没有更好的方法来进行插入?也许将表项排队到列表中,然后将整个列表添加到数据库上下文中。
或者也许我看错了,我应该完全避免使用 EntityFramework 来实现更高性能的插入?目前它是我的应用程序中的瓶颈,如果我查看系统资源,SQL 似乎根本没有动过眼睛。
所以我的问题:
1:如何在多次插入中实现最高效/最快的插入
2:如果EF可以接受,我该如何改进我的解决方案?
我使用的是 SQL Server 2012 企业版,传入的数据是恒定的流,但是我可以缓冲它,然后执行批量插入(如果这是更好的解决方案)。
[编辑]
进一步解释该场景。我有一个线程在并发队列上循环,该线程使该队列中的项目出列。然而,由于数据库插入是瓶颈。队列中通常有数千个条目,因此,如果还有一种异步或并行方式,我可能会利用多个线程来执行插入。
只是想知道在列表的第一个位置添加元素的正确概念是什么?
例如 :
主要列表包含以下元素:
1 3 5 6
Run Code Online (Sandbox Code Playgroud)
我喜欢在开头添加这个元素(position 0):7
所以决赛时会是这样的:
7 1 3 5 6
Run Code Online (Sandbox Code Playgroud)
我是否需要复制临时数组列表中的所有元素并一次重新插入所有元素?
我知道如何使用 perl 向 mysql 进行基本插入,但我不确定这个问题的标题是否完全准确。
我想做的事情如下: - 我得到一个带有一些参数的文本文件
"COUNTER","DATE","TIME","ACCEL LAT","ACCEL LONG","ACCEL VERT"
Run Code Online (Sandbox Code Playgroud)
^ 作为一个例子。然后我得到这些的 csv 值。
为此,您只需执行以下操作:
$query = "insert into table(counter, date, time, accel_lat, accel_long, accel_vert)
values (?, ?, ?, ?, ?, ?) ";
$statement = $connection->prepare($query);
$statement->execute(MY DATA IN HERE);
Run Code Online (Sandbox Code Playgroud)
但是,我遇到的问题是我得到的参数是
无论如何,我想我真正的问题是我可以使它不是静态的吗?
"insert into table(counter, date, time, accel_lat, accel_long, accel_vert)
Run Code Online (Sandbox Code Playgroud)
所以说我的参数文件是:日期、时间、计数器、accel_vert
我可以把这个陈述变成
"insert into table(date, time, counter, accel_vert)
Run Code Online (Sandbox Code Playgroud)
喜欢根据我从文本文件中读取的内容来定义我的插入语句(就像我们如何使用 ? 因为我们还不知道这些值,我需要一种对列使用 ? 的方法,因为我还不知道它们)。
这可能吗?抱歉,如果我不清楚,如果您问的话可以解释。
我需要将几乎重复的行插入表中,同时更改一些值。
例如,插入具有新 id 的重复行(我不需要自动 id)和不同的名称,但所有其他值相同。问题是我需要做出选择 *
我知道有一种方法可以通过这种方式插入选择和更改值:
insert into Table1(id,name,surname) select newid(),'David',surname from Table1 where id=1
Run Code Online (Sandbox Code Playgroud)
但我不想登记所有字段,而是想使用 select *,所以如果添加了字段,我将不必更改我的存储过程。
我想要类似的东西:
insert into Table1 (
update (SELECT *
FROM Table1
WHERE id= 1 ) t
set t.id= newid(),name='David')
Run Code Online (Sandbox Code Playgroud)
有办法做到吗?
我需要清理我的 MySQL 数据库并根据当前状态创建大量新记录。我需要插入这个:
INSERT INTO wp_postmeta (post_id, meta_key, meta_value) VALUES ($ID, "price_input_currency", "usd")
Run Code Online (Sandbox Code Playgroud)
对于我从该选择中获得的每个 $ID:
SELECT ID FROM wp_posts AS posts
RIGHT JOIN wp_postmeta ON posts.ID = post_id
WHERE post_type = 'post'
AND meta_value LIKE '%$%' AND meta_key = 'price_range'
Run Code Online (Sandbox Code Playgroud)
仅通过 MySQL 代码就可以做到这一点吗?我见过很多“如何将 INSERT 与 SELECT 结合起来,但他们都没有只使用字符串来插入,他们总是选择需要插入的所有字段......有什么想法吗?
我正在寻找一种在 Python 中将值插入到二维列表的方法。我的样本清单如下:
List= [ ['A', 'B'], ['C', 'D'] ]
Run Code Online (Sandbox Code Playgroud)
我想在列表中每个列表的开头插入一个值,使其看起来像这样:
List = [ ['#','A', 'B'], ['#','C', 'D'] ]
Run Code Online (Sandbox Code Playgroud)
我写了一个函数如下:
def Foo(l):
rows = len(l)
cols = len(l[0])
for row in xrange(rows):
l.insert(row, '#')
Run Code Online (Sandbox Code Playgroud)
但这给了我以下输出:
List= [ '#', '#', ['A', 'B'], ['C', 'D'] ]
Run Code Online (Sandbox Code Playgroud) 这里有几个类似的问题。没有人提供解决方案。我想在表B中插入一条新记录,但前提是表A中存在外键。需要明确的是,我不想插入选择的结果。我只需要知道外键存在。
INSERT INTO tableB (tableA_ID,code,notes,created) VALUES ('24','1','test',NOW())
SELECT tableA_ID FROM tableA WHERE tableA_ID='24' AND owner_ID='9'
Run Code Online (Sandbox Code Playgroud)
显然,上面的方法是行不通的。但这可能吗?我想将新数据插入到 tableB 中,前提是 tableA 中的行记录存在并且属于owner_ID。
到目前为止我看到的查询与插入 SELECT 查询的结果有关 - 我不想这样做。
我是Codeigniter的新手,我需要在之后显示成功和错误消息insert数据进入数据库后显示成功和错误消息。
我怎样才能在消息中显示view页面中显示该消息?
这是我的编码:
模型
function addnewproducts($data)
{
if($data['product_name']!="" && $data['product_qty']!="" && $data['product_price']!="" && $data['date']!="")
{
$res=$this->db->insert('product_list',$data);
return $this->db->insert_id();
}
else
{
return false;
}
}
Run Code Online (Sandbox Code Playgroud)
控制器
function addnewproduct()
{
$this->load->model('products');
$data['product_name'] = trim(strip_tags(addslashes($this->input->post('product_name'))));
$data['product_qty'] = trim(strip_tags(addslashes($this->input->post('product_qty'))));
$data['product_price'] = trim(strip_tags(addslashes($this->input->post('product_price'))));
$data['datetime']=date('d-m-Y');
$res = $this->products->addnewproducts($data);
if($res==true)
{
$data['success'] = 'Successful';
$this->load->view('addproduct',$data);
}
}
Run Code Online (Sandbox Code Playgroud)
看法
<p><?php echo $success; ?></p>
Run Code Online (Sandbox Code Playgroud)