{"id":10870,"date":"2023-10-09T07:35:54","date_gmt":"2023-10-09T14:35:54","guid":{"rendered":"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/"},"modified":"2023-11-09T17:57:13","modified_gmt":"2023-11-10T00:57:13","slug":"mysql-bit_and","status":"publish","type":"page","link":"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/","title":{"rendered":"MySQL BIT_AND() Function"},"content":{"rendered":"\n<p><strong>Summary<\/strong>: in this tutorial, you will learn how to use the MySQL <code>BIT_AND<\/code> function to perform bitwise AND of all bits in a column of a table.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Introduction to MySQL BIT_AND() function<\/h2>\n\n\n\n<p>MySQL <code>BIT_AND()<\/code> function is an <a href=\"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/\">aggregate function<\/a> that performs a <strong>bitwise AND <\/strong>operation of all bits in a column of a table. <\/p>\n\n\n\n<p>The bitwise AND compares two binary strings of the same length. It examines each pair of corresponding bits and performs the logical AND operation on them. If both bits are 1, the result is 1 otherwise the result is 0.<\/p>\n\n\n\n<p>The following example performs a bitwise AND on two binary numbers: 0101 (decimal 5) and 0011 (decimal 3) that results in 0001 (decimal 1):<\/p>\n\n\n<pre class=\"wp-block-code\"><span><code class=\"hljs\">0101 (decimal 5)\n0011 (decimal 3)\n----\n0001 (decimal 1)<\/code><\/span><\/pre>\n\n\n<p>Here&#8217;s the basic syntax of the <code>BIT_AND()<\/code> function:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-1\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">SELECT<\/span> \n  <span class=\"hljs-keyword\">BIT_AND<\/span>(column_name) \n<span class=\"hljs-keyword\">FROM<\/span> \n  table_name;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-1\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In practice, you may store data in binary form or use flags represented as individual bits. <\/p>\n\n\n\n<p>For example, in a permissions or access control, each bit can represent a specific permission such as read, write, and execute. The <code>BIT_AND()<\/code> function allows you to manipulate permission data at the bit level more efficiently.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">MySQL BIT_AND() function example<\/h2>\n\n\n\n<p>First, <a href=\"https:\/\/www.mysqltutorial.org\/mysql-basics\/mysql-create-table\/\">create a new table<\/a> <code>user_permissions<\/code> that has two columns <code>user_id<\/code> and <code>permission_mask<\/code>:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-2\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">CREATE<\/span> <span class=\"hljs-keyword\">TABLE<\/span> user_permissions (\n    user_id <span class=\"hljs-built_in\">INT<\/span> PRIMARY <span class=\"hljs-keyword\">KEY<\/span>,\n    permission_mask <span class=\"hljs-built_in\">INT<\/span>\n);<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-2\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Second, <a href=\"https:\/\/www.mysqltutorial.org\/mysql-basics\/mysql-insert\/\">insert some rows<\/a> into the <code>user_permissions<\/code> table:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-3\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">INSERT<\/span> <span class=\"hljs-keyword\">INTO<\/span> user_permissions (user_id, permission_mask)\n<span class=\"hljs-keyword\">VALUES<\/span>\n    (<span class=\"hljs-number\">1<\/span>, <span class=\"hljs-number\">7<\/span>),  <span class=\"hljs-comment\">-- Binary: 0111<\/span>\n    (<span class=\"hljs-number\">2<\/span>, <span class=\"hljs-number\">3<\/span>),  <span class=\"hljs-comment\">-- Binary: 0011<\/span>\n    (<span class=\"hljs-number\">3<\/span>, <span class=\"hljs-number\">5<\/span>);  <span class=\"hljs-comment\">-- Binary: 0101<\/span><\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-3\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>In this example, we use three rows, each with a <code>user_id<\/code> and a <code>permission_mask<\/code> represented in binary form.<\/p>\n\n\n\n<p>Third, find the common permissions among the users using the <code>BIT_AND()<\/code> function:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-4\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\"><span class=\"hljs-keyword\">SELECT<\/span> \n  <span class=\"hljs-keyword\">BIT_AND<\/span>(permission_mask) <span class=\"hljs-keyword\">AS<\/span> common_permissions \n<span class=\"hljs-keyword\">FROM<\/span> \n  user_permissions;<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-4\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>Output:<\/p>\n\n\n<pre class=\"wp-block-code\" aria-describedby=\"shcb-language-5\" data-shcb-language-name=\"SQL (Structured Query Language)\" data-shcb-language-slug=\"sql\"><span><code class=\"hljs language-sql\">+<span class=\"hljs-comment\">--------------------+<\/span>\n| common_permissions |\n+<span class=\"hljs-comment\">--------------------+<\/span>\n|                  1 |\n+<span class=\"hljs-comment\">--------------------+<\/span>\n1 row in <span class=\"hljs-keyword\">set<\/span> (<span class=\"hljs-number\">0.00<\/span> sec)<\/code><\/span><small class=\"shcb-language\" id=\"shcb-language-5\"><span class=\"shcb-language__label\">Code language:<\/span> <span class=\"shcb-language__name\">SQL (Structured Query Language)<\/span> <span class=\"shcb-language__paren\">(<\/span><span class=\"shcb-language__slug\">sql<\/span><span class=\"shcb-language__paren\">)<\/span><\/small><\/pre>\n\n\n<p>The result of <code>BIT_AND(permission_mask)<\/code> is  <code>1<\/code>, which corresponds to the binary <code>0001<\/code>. It means that the common permission of the three users is the first permission (the rightmost bit).<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Use the MySQL <code>BIT_AND()<\/code> function to return the bitwise AND of all bits in a column of a table.<\/li>\n<\/ul>\n<div class=\"helpful-block-content\" data-title=\"\">\n\t<header>\n\t\t<div class=\"wth-question\">Was this tutorial helpful? <\/div>\n\t\t<div class=\"wth-thumbs\">\n\t\t\t<button\n\t\t\t\tdata-post=\"10870\"\n\t\t\t\tdata-post-url=\"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/\"\n\t\t\t\tdata-post-title=\"MySQL BIT_AND() Function\"\n\t\t\t\tdata-response=\"1\"\n\t\t\t\tclass=\"wth-btn-rounded wth-yes-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t\tclass=\"feather feather-thumbs-up block w-full h-full\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> Yes <\/span>\n\t\t\t<\/button>\n\n\t\t\t<button\n\t\t\t\tdata-response=\"0\"\n\t\t\t\tdata-post=\"10870\"\n\t\t\t\tdata-post-url=\"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/\"\n\t\t\t\tdata-post-title=\"MySQL BIT_AND() Function\"\n\t\t\t\tclass=\"wth-btn-rounded wth-no-btn\"\n\t\t\t>\n\t\t\t\t<svg\n\t\t\t\t\txmlns=\"http:\/\/www.w3.org\/2000\/svg\"\n\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\tfill=\"none\"\n\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\tstroke-linejoin=\"round\"\n\t\t\t\t>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"\n\t\t\t\t\t><\/path>\n\t\t\t\t<\/svg>\n\t\t\t\t<span class=\"sr-only\"> No <\/span>\n\t\t\t<\/button>\n\t\t<\/div>\n\t<\/header>\n\n\t<div class=\"wth-form hidden\">\n\t\t<div class=\"wth-form-wrapper\">\n\t\t\t<div class=\"wth-title\"><\/div>\n\t\t\t\n\t\t\t<textarea class=\"wth-message\"><\/textarea>\n\n\t\t\t<button class=\"btn btn-primary wth-btn-submit\">Send<\/button>\n\t\t\t<button class=\"btn wth-btn-cancel\">Cancel<\/button>\n\t\t\n\t\t<\/div>\n\t<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summary: in this tutorial, you will learn how to use the MySQL BIT_AND function to perform bitwise AND of all bits in a column of a table. Introduction to MySQL BIT_AND() function MySQL BIT_AND() function is an aggregate function that performs a bitwise AND operation of all bits in a column of a table. The [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":509,"menu_order":12,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-10870","page","type-page","status-publish","hentry"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>MySQL BIT_AND() Function<\/title>\n<meta name=\"description\" content=\"MySQL BIT_AND() function is an aggregate function that performs a bitwise AND operation of all bits in a column of a table.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MySQL BIT_AND() Function\" \/>\n<meta property=\"og:description\" content=\"MySQL BIT_AND() function is an aggregate function that performs a bitwise AND operation of all bits in a column of a table.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/\" \/>\n<meta property=\"og:site_name\" content=\"MySQL Tutorial\" \/>\n<meta property=\"article:modified_time\" content=\"2023-11-10T00:57:13+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-aggregate-functions\\\/mysql-bit_and\\\/\",\"url\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-aggregate-functions\\\/mysql-bit_and\\\/\",\"name\":\"MySQL BIT_AND() Function\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/#website\"},\"datePublished\":\"2023-10-09T14:35:54+00:00\",\"dateModified\":\"2023-11-10T00:57:13+00:00\",\"description\":\"MySQL BIT_AND() function is an aggregate function that performs a bitwise AND operation of all bits in a column of a table.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-aggregate-functions\\\/mysql-bit_and\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-aggregate-functions\\\/mysql-bit_and\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-aggregate-functions\\\/mysql-bit_and\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.mysqltutorial.org\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MySQL Aggregate Functions\",\"item\":\"https:\\\/\\\/www.mysqltutorial.org\\\/mysql-aggregate-functions\\\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"MySQL BIT_AND() Function\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.mysqltutorial.org\\\/#website\",\"url\":\"https:\\\/\\\/www.mysqltutorial.org\\\/\",\"name\":\"MySQL Tutorial\",\"description\":\"A comprehensive MySQL Tutorial\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.mysqltutorial.org\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"MySQL BIT_AND() Function","description":"MySQL BIT_AND() function is an aggregate function that performs a bitwise AND operation of all bits in a column of a table.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/","og_locale":"en_US","og_type":"article","og_title":"MySQL BIT_AND() Function","og_description":"MySQL BIT_AND() function is an aggregate function that performs a bitwise AND operation of all bits in a column of a table.","og_url":"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/","og_site_name":"MySQL Tutorial","article_modified_time":"2023-11-10T00:57:13+00:00","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/","url":"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/","name":"MySQL BIT_AND() Function","isPartOf":{"@id":"https:\/\/www.mysqltutorial.org\/#website"},"datePublished":"2023-10-09T14:35:54+00:00","dateModified":"2023-11-10T00:57:13+00:00","description":"MySQL BIT_AND() function is an aggregate function that performs a bitwise AND operation of all bits in a column of a table.","breadcrumb":{"@id":"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/mysql-bit_and\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.mysqltutorial.org\/"},{"@type":"ListItem","position":2,"name":"MySQL Aggregate Functions","item":"https:\/\/www.mysqltutorial.org\/mysql-aggregate-functions\/"},{"@type":"ListItem","position":3,"name":"MySQL BIT_AND() Function"}]},{"@type":"WebSite","@id":"https:\/\/www.mysqltutorial.org\/#website","url":"https:\/\/www.mysqltutorial.org\/","name":"MySQL Tutorial","description":"A comprehensive MySQL Tutorial","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.mysqltutorial.org\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"}]}},"_links":{"self":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/10870","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/comments?post=10870"}],"version-history":[{"count":4,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/10870\/revisions"}],"predecessor-version":[{"id":12239,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/10870\/revisions\/12239"}],"up":[{"embeddable":true,"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/pages\/509"}],"wp:attachment":[{"href":"https:\/\/www.mysqltutorial.org\/wp-json\/wp\/v2\/media?parent=10870"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}