首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >查询中跨多行的SQL字符串值

问查询中跨多行的SQL字符串值
EN

Stack Overflow用户
提问于 2011-11-16 11:39:15
回答 4查看 122.9K关注 0票数 41

更新:bio可能包含撇号(参见更新的示例)

我有一个SQL查询,它有一个跨多行的值,它会导致查询失败:

代码语言:javascript
复制
UPDATE User SET UserId=12345, Name="J Doe", Location="USA", Bio="I'm a
bio that has an apostrophe, and I'm 
spanning multiple lines!" 
WHERE UserId=12345

在C#中,您可以将@放在字符串Bio=@"..."之前,以允许它跨越多行,但我不确定如何在SQL查询中实现相同的功能。如何让字符串跨越多行,而不必手动连接字符串:

代码语言:javascript
复制
Bio="I'm a"
+" bio that has an apostrophe, and I'm"
+" spanning multiple lines!" 
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-11-16 11:45:26

SQL Server允许执行以下操作(请注意使用单引号而不是双引号)

代码语言:javascript
复制
UPDATE User
SET UserId = 12345
   , Name = 'J Doe'
   , Location = 'USA'
   , Bio='my bio
spans 
multiple
lines!'
WHERE UserId = 12345
票数 62
EN

Stack Overflow用户

发布于 2011-11-16 11:44:30

列"BIO“的数据类型是什么?什么数据库服务器(sql/oracle/mysql)?只要遵守列数据类型中的字符限制(即varchar(200) ),就应该能够跨越多行。尝试使用单引号,这可能会有所不同。这对我来说很有效:

代码语言:javascript
复制
update table set mycolumn = 'hello world,
my name is carlos.
goodbye.'
where id = 1;

此外,如果要在C#中将sql字符串连接在一起,则可能需要检查是否有单引号。如果变量包含可以从sql语句中转义代码的单引号,则不会执行预期中的所有行。

顺便说一句,您可以像在C#中那样用分号分隔SQL语句,就像供参考一样。

票数 2
EN

Stack Overflow用户

发布于 2013-06-11 18:50:14

使用VARCHAR时,您可能还需要指定长度,或者最好这样做

抓取文本,创建一个字符串,然后将其放入查询中怎么样?

代码语言:javascript
复制
String TableName = "ComplicatedTableNameHere";  
EditText editText1 = (EditText) findViewById(R.id.EditTextIDhere); 
String editTextString1 = editText1.getText().toString();  

分解了

代码语言:javascript
复制
String TableName = "ComplicatedTableNameHere";            
    //sets the table name as a string so you can refer to TableName instead of writing out your table name everytime

EditText editText1 = (EditText) findViewById(R.id.EditTextIDhere); 
    //gets the text from your edit text fieldfield 
    //editText1 = your edit text name
    //EditTextIDhere = the id of your text field

String editTextString1 = editText1.getText().toString();  
    //sets the edit text as a string
    //editText1 is the name of the Edit text from the (EditText) we defined above
    //editTextString1 = the string name you will refer to in future

然后使用进行

代码语言:javascript
复制
       /* Insert data to a Table*/
       myDB.execSQL("INSERT INTO "
         + TableName
         + " (Column_Name, Column_Name2, Column_Name3, Column_Name4)"
         + " VALUES ( "+EditTextString1+", 'Column_Value2','Column_Value3','Column_Value4');");

希望这能帮到什么.

注释每个字符串都在

代码语言:javascript
复制
'"+stringname+"'

是启用srting的多行元素的‘’,如果没有它,你只会得到第一行,甚至不确定是否会得到整行,它可能只是第一个单词

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8146368

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档