亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 2905 | 回復(fù): 8
打印 上一主題 下一主題

[文本處理] 連接mysql返回帶空格的字符串 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2015-01-15 11:55 |只看該作者 |倒序?yàn)g覽
大神們好!小白又來問問題
這兩天寫腳本,連接數(shù)據(jù)庫之后,讀取一張表格里面兩個(gè)字段的值,字段都是字符串類型;
里面存儲(chǔ)的值帶空格
如果是返回一個(gè)數(shù)組則數(shù)組以空格分界,又沒辦法讓mysql返回的時(shí)候在同個(gè)字符串帶上個(gè)雙引號(hào)
所以提取兩個(gè)帶空格的串,就做了兩次查詢
應(yīng)該如何改進(jìn)
請(qǐng)大神教我更高效的方法!小白謝過

論壇徽章:
33
ChinaUnix元老
日期:2015-02-02 08:55:39CU十四周年紀(jì)念徽章
日期:2019-08-20 08:30:3720周年集字徽章-周	
日期:2020-10-28 14:13:3020周年集字徽章-20	
日期:2020-10-28 14:04:3019周年集字徽章-CU
日期:2019-09-08 23:26:2519周年集字徽章-19
日期:2019-08-27 13:31:262016科比退役紀(jì)念章
日期:2022-04-24 14:33:24
2 [報(bào)告]
發(fā)表于 2015-01-15 12:38 |只看該作者
完整代碼發(fā)出來看看

論壇徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16賽季CBA聯(lián)賽之北京
日期:2016-07-06 15:42:0715-16賽季CBA聯(lián)賽之同曦
日期:2016-06-12 10:38:0915-16賽季CBA聯(lián)賽之佛山
日期:2016-05-27 11:54:56黃金圣斗士
日期:2015-12-02 11:44:35白銀圣斗士
日期:2015-11-25 14:32:43白銀圣斗士
日期:2015-11-23 12:53:352015亞冠之布里斯班獅吼
日期:2015-10-21 16:55:482015亞冠之首爾
日期:2015-09-01 16:46:052015亞冠之德黑蘭石油
日期:2015-08-31 11:39:192015亞冠之薩濟(jì)拖拉機(jī)
日期:2015-08-28 21:06:5315-16賽季CBA聯(lián)賽之廣東
日期:2016-07-12 14:58:53
3 [報(bào)告]
發(fā)表于 2015-01-15 13:26 |只看該作者
猜猜猜 :wink:

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2015-01-15 14:22 |只看該作者
本帖最后由 rdcwayx 于 2015-01-15 17:27 編輯

回復(fù) 2# Shell_HAT


    你好:
例如 我的表格現(xiàn)在是:
  1. mysql> select * from Mail;
  2. +---------+----------------+
  3. | subject | summary        |
  4. +---------+----------------+
  5. | a test  | this is a test |
  6. +---------+----------------+
  7. 1 row in set (0.00 sec)
復(fù)制代碼
需要返回  subject 和 summary
  1. #!/bin/bash
  2. mail=(`mysql -s <<end
  3. use test;
  4. select * from Mail;
  5. end`)
  6. echo "${mail[0]};"
  7. echo "${mail[1]};"
  8. echo "${mail[*]};"
復(fù)制代碼
如果這樣子  mail[0] 就是 “a” mail[1] 就是“test”
如何處理能夠 在一次查詢中,把  “a test”賦值給mail[0]  "this is a test"賦給mai[1]?

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2015-01-15 14:24 |只看該作者
回復(fù) 3# reyleon

大神賜教呀
   

論壇徽章:
60
20周年集字徽章-20	
日期:2020-10-28 14:04:3015-16賽季CBA聯(lián)賽之北京
日期:2016-07-06 15:42:0715-16賽季CBA聯(lián)賽之同曦
日期:2016-06-12 10:38:0915-16賽季CBA聯(lián)賽之佛山
日期:2016-05-27 11:54:56黃金圣斗士
日期:2015-12-02 11:44:35白銀圣斗士
日期:2015-11-25 14:32:43白銀圣斗士
日期:2015-11-23 12:53:352015亞冠之布里斯班獅吼
日期:2015-10-21 16:55:482015亞冠之首爾
日期:2015-09-01 16:46:052015亞冠之德黑蘭石油
日期:2015-08-31 11:39:192015亞冠之薩濟(jì)拖拉機(jī)
日期:2015-08-28 21:06:5315-16賽季CBA聯(lián)賽之廣東
日期:2016-07-12 14:58:53
6 [報(bào)告]
發(fā)表于 2015-01-15 14:35 |只看該作者
回復(fù) 5# 花哥愛吉他





    mysql 有一個(gè) -e 的選項(xiàng)吶


values=$(mysql -p$passwd -u$user $db_name -BN -e "select * from Mail")
eval mail=($(awk -F '\t' '{print "\047"$1"\047", "\047"$2"\047"}' <<< "$values"))
echo ${mail[0]}
echo ${mail[1]}

論壇徽章:
2
摩羯座
日期:2014-11-03 15:28:56卯兔
日期:2015-01-04 17:20:51
7 [報(bào)告]
發(fā)表于 2015-01-15 14:36 |只看該作者
回復(fù) 4# 花哥愛吉他


    不懂mysql,不過按sql規(guī)范來說,在select的時(shí)候,用比如豎線之類符號(hào)來拼接select中的字段至一個(gè)字符串
   
   取出來以后,再用shell根據(jù)豎線解析出各個(gè)字段來呢。。。

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2015-01-15 15:15 |只看該作者
回復(fù) 6# reyleon


    謝謝六子
你的方式試了下 可以用 但是其中有不懂的地方:
使用 -F “\t” 作為分割符 分割“$1” "$2"  , “$values”作為輸入
是不是在 select 的時(shí)候  不同字段的值之間  就已經(jīng)插入了 \t 所以才能使用\t來分割兩個(gè)字段
如果我在插入數(shù)據(jù)的時(shí)候:
mysql> insert into Mail(subject,summary) values("a\ttest","this\tis\ta\ttest";
Query OK, 1 row affected (0.25 sec)

mysql> select * from Mail;
+--------+----------------+
| a        test | this        is        a        test |
+--------+----------------+
1 row in set (0.00 sec)

運(yùn)行結(jié)果:
a\ttest
this\tis\ta\ttest

為什么用你的方法,還是可以區(qū)分開不同字段,而同一個(gè)字段中“\t” 不做為分割的標(biāo)志?

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2015-01-15 15:19 |只看該作者
回復(fù) 7# bulletmarquis


    你好,你的方法
在兩個(gè)字段之間加“|” 使用cut命令分割
#!/bin/bash
mail=(`mysql -s <<end
use test;
select subject,"|",summary from Mail;
end`)
echo "${mail[0]};"
echo "${mail[1]};"
echo "${mail
  • }"|cut -d "|" -f 2

    運(yùn)行結(jié)果:
    a;
    test;
    this is a test

    這樣做確實(shí)能夠把第一個(gè)和第二個(gè)字段分割開;
    缺點(diǎn): 如果字符串中有“|” 符號(hào) 那么就可能產(chǎn)生錯(cuò)誤

    例如數(shù)據(jù)輸入:
    mysql> insert into Mail(subject,summary) values("a|test","this|is|a|test";
    Query OK, 1 row affected (0.26 sec)

    上面數(shù)據(jù)執(zhí)行結(jié)果:
    a|test;
    |;
    test
  • 您需要登錄后才可以回帖 登錄 | 注冊(cè)

    本版積分規(guī)則 發(fā)表回復(fù)

      

    北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
    未成年舉報(bào)專區(qū)
    中國互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
    感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

    清除 Cookies - ChinaUnix - Archiver - WAP - TOP