我对mysql比较新。我正在尝试执行mysql查询以返回表列值不包含的值...' u'。我尝试了几件事,但它返回的是0行而不是1000行,应该是这样。现在,我的SW_Ver_update_status列已经初始化了所有null。
这是我到目前为止所做的尝试:
SELECT Distinct node_ipv4, model FROM Nokia_Network_Analyzer.NAC_DSLAMS
WHERE vendor = 'Calix' AND model in ('C7','E7') AND SW_Ver_update_status <>
'u' LIMIT 100;
这是我的表结构,是的,它已经填充了大约2000:
element_key int(20) YES
node_ipv4 varchar(25) YES
node_ipv6 varchar(25) YES
nodealias varchar(25) NO PRI
fqdn int(5) YES
region varchar(3) YES
class int(7) YES
service_tag int(5) YES
domain varchar(15) YES
active int(2) YES
state varchar(2) YES
LastUpdateUser varchar(15) YES
date_updated datetime YES
date_created datetime YES
vendor varchar(15) YES
model varchar(15) YES
software_version varchar(20) YES
head_node_monitor_pt varchar(15) YES
master_status varchar(15) YES
ping_reply int(2) YES
LastUpdateIP varchar(25) YES
extra int(2) YES
SW_Ver_update_status varchar(1) YES
SW_ver_update_time timestamp YES
看起来我根据我在网上搜索的内容做得很好: mysql <> &lt;&gt;部分是新的,在此之前它工作得很好。此外,SW_Ver_update_status和SW_ver_update_time列是表格的新内容。
示例表数据:
element_key node_ipv4 node_ipv6 nodealias fqdn region class service_tag domain active state LastUpdateUser date_updated date_created vendor model software_version head_node_monitor_pt master_status ping_reply LastUpdateIP extra SW_Ver_update_status SW_ver_update_time
null 10.xx.xxx.xx null BRFRFLIR123 null FL 90712 SouthEast null FL null 2018-02-20 07:48:42 2018-02-20 07:48:42 Calix C7 1.0.320.669 empty master 1 null null null null
答案 0 :(得分:0)
NOT EQUAL运算符以完整值工作。
"abc" <> "a" #returns true
"abc" <> "abc" #returns false
根据我的理解,您想检查您是否包含某个特定字符。您正在寻找LIKE
。
默认情况下,LIKE的工作方式类似于<>
"abc" LIKE "abc" #returns true
"abc" LIKE "b" #returns false
通过使用通配符,您可以获得所需的功能。
"abc" LIKE "%b%" #returns true
%
说&#34;匹配任意数量的字符&#34;。通过在开头和结尾放置一个通配符,我们可以检查字符串是否包含varchar的开头,中间或末尾的一个或多个短语。
到目前为止,我已经向您展示了如何检查另一个短语/字符中是否存在短语/字符。要检查短语/字符是否不存在,您可以使用NOT
关键字。
"abc" NOT LIKE "%b%" #returns false
"ac" NOT LIKE "%b%" #returns true
完整示例:
SELECT * FROM yourTable WHERE "abc" NOT LIKE "%b%"
SELECT * FROM yourTable WHERE "ac" NOT LIKE "%b%"
第一个查询将不返回任何内容,第二个查询将返回所有内容。
正如Dionei Miodutzki所提到的,如果你正在处理空值,你还需要检查空值。
SELECT * FROM `tableName` WHERE `columnName` IS NOT NULL && `columnName` NOT LIKE '%u%'
在LIKE
和documentation和W3Schools上了解NOT LIKE
和SELECT
(SELECT
ARRAY_AGG(
REGEXP_EXTRACT(pageViewed.val,r'\?test\=([^&]*)')
IGNORE NULLS ORDER BY pageViewed.hit DESC LIMIT 1)[OFFSET(0)]
FROM UNNEST(pagesViewed) AS pageViewed
) AS TestId,
SUM(revenue) AS Revenue
FROM `project.dataset.table`
GROUP BY 1
ORDER BY 2 DESC;
的详情。