分号后删除varchar

时间:2017-11-22 18:51:46

标签: sql sql-server

所以我有很多这样的数据:

pix11co;10.115.0.1 

devapp087co;10.115.0.100

old_main-mgr;10.115.0.101

radius03co;10.115.0.110

我想删除;之后的内容,以便它变成

pix11co

devapp087co

old_main-mgr

radius03co

由于它们各不相同,我可以住在那里的分号。 我有以下查询,它运行成功但不删除任何内容。

UPDATE dns$ SET [Name;] = REPLACE ([Name;], '%_;%__________%', '%_;');

我可以使用哪些通配符来指定;之后的字符?

2 个答案:

答案 0 :(得分:2)

您可以使用CHARINDEX吗? E.g:

SELECT LEFT('pix11co;10.115.0.1', CHARINDEX(';', 'pix11co;10.115.0.1') - 1)

答案 1 :(得分:1)

您可以使用CHARINDEX()CREATE TABLE MyStrings ( STR VARCHAR(MAX) ); INSERT INTO MyStrings VALUES ('pix11co;10.115.0.1'), ('devapp087co;10.115.0.100'), ('old_main-mgr;10.115.0.101'), ('radius03co;10.115.0.110'); SELECT STR, SUBSTRING(STR, 1, CHARINDEX(';', STR) -1 ) AS Result FROM MyStrings; 功能:

+---------------------------+--------------+
|            STR            |    Result    |
+---------------------------+--------------+
| pix11co;10.115.0.1        | pix11co      |
| devapp087co;10.115.0.100  | devapp087co  |
| old_main-mgr;10.115.0.101 | old_main-mgr |
| radius03co;10.115.0.110   | radius03co   |
+---------------------------+--------------+

结果:

//ands

$this->db->like('id_photo', $id);
$this->db->like('id_photo', $lastname);
//chain the likes this way instead of "(($strWhere)"." OR lastname LIKE "."'%".$lnameFilter."%')"


//ors

$this->db->like('id_photo', $id);
$this->db->or_like('id_photo', $lastname);