- 精通Neo4j
- 龐國明等
- 775字
- 2023-07-17 19:01:03
3.2.5 運算符
3.2.5.1 數(shù)學(xué)運算符
數(shù)學(xué)運算符包括+、-、*、/、%和^。
3.2.5.2 比較運算符
比較運算符包括=、<>、<、>、<=、>=、IS NULL和IS NOT NULL。
3.2.5.3 布爾運算符
布爾運算符包括AND、OR、XOR和NOT。
3.2.5.4 字符串運算符
連接字符串的運算符為+,正則表達(dá)式的匹配運算符為=~。
3.2.5.5 列表運算符
列表的連接也可以通過+運算符,可以用IN來檢查列表中是否存在某個元素。
3.2.5.6 屬性運算符
Cypher 2.0版本以后,之前存在的屬性運算符“?”和“!”已經(jīng)被移除了。這個語法不再支持。對于不存在的屬性將返回null。如果真的還需要?運算符的功能,可以使用(NOT(has(<ident>.prop))OR <ident>.prop=<value>)。使用“? ”表達(dá)可選關(guān)系也被移除了,取而代之的是OPTINAL MATCH。
3.2.5.7 值的相等與比較
Cypher支持使用=和<>來比較兩個值的相等/不相等關(guān)系,如3 = 3和"x" <> "xy"。
對于Map來說,只有兩個Map的鍵相同且指向的值也相等的時候它們才相等。對于列表來說,只有它們包含相等值的相同序列的時候才相等,如[3, 4] = [1+2, 8/2]。
不同類型的值在比較相等的時候遵循以下規(guī)則:
● 路徑可看作是一些節(jié)點和關(guān)系的列表,它等于所有包含相同序列節(jié)點和關(guān)系的所有列表。
● 對任何值使用=和<> null都將返回null,包括null = null和null <> null都將返回null。唯一可靠地測試一個值是否為null的方法是使用IS NULL或者IS NOT NULL。
不同類型之間不能相互比較。節(jié)點、關(guān)系和映射之間也不能相互比較。
3.2.5.8 值的排序與比較
比較運算符<=、<(升序)和>=、>(降序)可以用于如下值排序比較:
● 數(shù)字型值的排序比較采用數(shù)字順序。
● java.lang.Double.NaN大于所有值。
● 字符串排序的比較采用字典順序,如"x" < "xy"。
● 布爾值的排序遵循false < true。
● 只要有一個參數(shù)為null,比較結(jié)果都將為null,如null < 3的結(jié)果為null。
● 將其他類型的值相互比較進(jìn)行排序,則會報錯。
3.2.5.9 鏈?zhǔn)奖容^運算
比較運算可以被任意地聯(lián)結(jié)在一起,如x < y <= z等價于x < y AND y <= z。
如果a, b, c, …, y, z是表達(dá)式,op1, op2, …, opN是比較運算符,這時,a op1 b op2 c … y opN z等價于a op1 b and b op2 c and … y opN z。
例如:

等價于:

該查詢將匹配年齡介于21~30的所有節(jié)點。
- 公有云容器化指南:騰訊云TKE實戰(zhàn)與應(yīng)用
- 企業(yè)數(shù)字化創(chuàng)新引擎:企業(yè)級PaaS平臺HZERO
- 數(shù)據(jù)之巔:數(shù)據(jù)的本質(zhì)與未來
- Mastering Ninject for Dependency Injection
- 揭秘云計算與大數(shù)據(jù)
- 大話Oracle Grid:云時代的RAC
- 智能數(shù)據(jù)分析:入門、實戰(zhàn)與平臺構(gòu)建
- Spark大數(shù)據(jù)分析實戰(zhàn)
- ZeroMQ
- 數(shù)據(jù)庫技術(shù)實用教程
- 金融商業(yè)算法建模:基于Python和SAS
- MATLAB Graphics and Data Visualization Cookbook
- 計算機應(yīng)用基礎(chǔ)教程上機指導(dǎo)與習(xí)題集(微課版)
- 企業(yè)級容器云架構(gòu)開發(fā)指南
- 一本書講透Elasticsearch:原理、進(jìn)階與工程實踐