I want to use Select by Attribute to select records where the value in one attribute is LIKE the value in another attribute, so for example:
PIN_TRACKING LIKE '%PIN%'
Where PIN_TRACKING is a list of PINs and I want to identify if PIN is listed in PIN_TRACKING
PIN PIN_Tracking
1 1,2,3
2 4,5
3 1,2,3
So for the above data it would select record 1 and 3 as the PIN is included in the list in PIN_TRACKING
Thanks for your help!
not sure where you are doing this... field calculator?, script? within the select by attribute, but conceptually
IF PIN is numeric and PIN_TRACKING is text...
p = 1
pt = '1,2,3'
str(p) in pt # ---- where p and pt are their associated fields
True
Thanks - I am trying to do it in Select by Attribute. Both are text fields.
Bit of a stumper actually, I might just add a new field and run a field calculator expression on it to return 0 or 1 or something like that. then select by attributes where the new field = 1.
#pre-logic python
def checker(PIN, PIN_TRACKING):
if PIN IN PIN_TRACKING.split(","):
result = '1'
else:
result = '0'
return result
#window
checker(!PIN!, !PIN_TRACKING!)
I guess you want to do this interactively? I could see doing it with a python script using a search cursor (untested!!😞
import arcpy
fc = r'C:\path\to\gdb\featureClass'
fields = ['OBJECTID', 'PIN', 'PIN_Tracking']
arcpy.MakeFeaturelayer_management(fc, 'fcLyr')
with arcpy.da.SearchCursor('fcLyr', fields) as cursor:
for row in cursor:
select = 'OBJECTID = row[0]'
if row[1] in row[2]:
arcpy.SelectLayerByAttribute_management('fcLyr','ADD_TO_SELECTION',select)
I've always thought it would be cool to add a condition to the interactive select by attributes tool...